SlideShare a Scribd company logo
1 of 31
Download to read offline
AG Projects                                       ICE: the ultimate way of beating NAT in SIP
       ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts
                                 Saúl Ibarra Corretgé | AG Projects




                                           Amoocon 2010
AG Projects                                        ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts



   Index
            ●      How NAT afects SIP
            ●      Solving the problem
                     ●      In the client
                     ●      In the network
            ●      ICE: the ultimate solution
            ●      Why ICE doesn't didn't work
            ●      Fixing ICE in the server
                     ●      OpenSIPS
                     ●      MediaProxy
            ●      What about IPv6?
            ●      Q&A




                                             Amoocon 2010
AG Projects                                             ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




How NAT afects SIP
          ●      Internet providers use NATs
                    ●      Multiplex private addresses into a single public one
                    ●      'Hide' inner network from the outside


          ●      NATs create a binding between the internal/private address
                 and the external/public
          ●      IP and port in the packets is modifed with the binding
                 information




                                                 Amoocon 2010
AG Projects                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




How NAT afects SIP (II)




                                 Amoocon 2010
AG Projects                                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




How NAT afects SIP (III)
          ●      This changes in the source IP/port afect SIP because it will
                 contain private IP addresses
                    ●      Contact header: in REGISTER requests it will be used for
                           targeting incoming INVITEs
                    ●      SDP: target address and port for media

          ●      This results in one way audio / no media at all!

          ●      Can this be solved?
                    ●      Contact header for REGISTER: a proxy can use the received
                           IP/port.
                    ●      SDP: hard to solve, as ports are dynamically allocated




                                                 Amoocon 2010
AG Projects                                                 ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




How NAT afects SIP (IV)
        IN VITE s ip:3333@s ip2s ip.info SIP/ 2.0
        Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPj.OB8RPYvcZIaBcu.uom4xvbsyw9RBwlW
        Max-Forwards: 70
        From: "saul" <sip:saghul@sip2sip.info>;tag=N0mSaBvIOXOLC0sNpJ9oJvrpJMuSeC8p
        To: <sip:3333@sip2sip.info>
        Contact: <sip:dezruwmf@192.168.99.23:49919>
        Call-ID: PQ4m4UxA9VHDJ.uLGXzKOQm-9ljIZGvH
        CSeq: 24149 INVITE
        Route: <sip:81.23.228.150;lr>
        Allow: SUBSCRIBE, NOTIFY, PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, MESSAGE
        Supported: 100rel
        User-Agent: blink-0.18.2
        Content-Type: application/sdp
        Content-Length: 387
        V=0
        o=- 3484383368 3484383368 IN IP4 192.168.99.23
        s=blink-0.18.2
        c=IN IP4 192.168.99.23
        t=0 0
        m=audio 50076 RTP/AVP 0 8 9 101
        a=rtcp:50077 IN IP4 192.168.99.23
        a=rtpmap:9 G722/8000
        a=rtpmap:0 PCMU/8000
        a=rtpmap:8 PCMA/8000
        a=rtpmap:101 telephone-event/8000
        a=fmtp:101 0-15
        a=sendrecv




                                                    Amoocon 2010
AG Projects                                                     ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Solving the problem in the client
          ●      Clients may try to solve their NAT issue by using client-side
                 NAT traversal techniques
                    ●      Session Traversal Utilities for NAT (STUN) – RFC 5389
                    ●      Traversal Using Relays around NAT (TURN) – RFC 5766

          ●      However...
                    ●      TURN hasn't been widely deployed
                    ●      STUN can't be used in case of symmetric NAT
                                 –   Most common type of NAT?


          ●      Cooperation from the server side
                    ●      Deployment of STUN/TURN servers
          ●      Servers don't trust clients


                                                       Amoocon 2010
AG Projects                                             ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Solving the problem in the server
          ●      Insert a media relay in the path so that 2 way media works
                 in the worst case
          ●      SDP mangling
          ●      Ugly hacks to avoid using a media relay every time
                    ●      If both users come from the same network
                    ●      Other local policies




                                                  Amoocon 2010
AG Projects                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Solving the problem in the server (II)




                                 Amoocon 2010
AG Projects                                              ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE: the ultimate solution!
          ●      Interactive Connection Establishment
                    ●      RFC 5245. Yes, it's an RFC!
          ●      Combines client-side techniques with server support to fnd
                 the most appropriate way of communicating with the other
                 endpoint
                    ●      STUN + TURN
          ●      Media should only be relayed in the worst case
                    ●      Both endpoints behind symmetric NATs
          ●      Start sending media when it's guarantied that there will be a
                 successful communication
          ●      Clients don't need to know their NAT type
          ●      A complex protocol
                    ●      It took ICE 6 years to become an RFC!
                    ●      Not many fully capable ICE clients... but you can Blink! :)

                                                  Amoocon 2010
AG Projects                                           ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE Step 1: Allocation
          ●      Before sending the INVITE
          ●      Gather all possible candidates
          ●      Candidate types
                    ●      Host candidates: machines local network interfaces
                    ●      Server refexive candidates: learnt by using STUN
                    ●      Relayed candidates: allocated with STUN Relay Usage requests
                           (RFC 5766)




                                                Amoocon 2010
AG Projects                                           ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE Step 2: Prioritization
        priority = (2^24)*(type preference) +
                  (2^8 )*(local preference) +
                  (2^0)*(256 -componentID)

          ●      Type preference: Depends on candidate type (0 for relayed candidate, 126
                 for host candidate)
          ●      Local preference: Local policy for selecting different priority if candidates
                 are same type. Also IPv4 / IPv6.
          ●      Component ID: 1 for RTP, 2 for RTCP




                                              Amoocon 2010
AG Projects                                                      ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE Step 3: Ofer encoding
                       V=0
                       o=- 3484389594 3484389594 IN IP4 192.168.99.23
                       s=blink-0.18.2
                       c=IN IP4 192.168.99.23
                       t=0 0
                       m=audio 64249 RTP/AVP 104 103 102 9 0 8 101
                       a=rtcp:64250 IN IP4 62.131.6.55
                       a=rtpmap:104 speex/32000
                       a=rtpmap:103 speex/16000
                       a=rtpmap:102 speex/8000
                       a=rtpmap:9 G722/8000
                       a=rtpmap:0 PCMU/8000
                       a=rtpmap:8 PCMA/8000
                       a=rtpmap:101 telephone-event/8000
                       a=fmtp:101 0-15
                       a=ice-ufrag:241ffa10
        ICE attributes a=ice-pwd:2f5a42f7
                       a=candidate:Sc0a86317 1 UDP 1694498815 62.131.6.55 64249 typ srf x raddr 192.168.99.23 rport 49306
                                                                                      l
                       a=candidate:Hc0a86317 1 UDP 2130706431 192.168.99.23 49306 typ host
                       a=candidate:Sc0a86317 2 UDP 1694498814 62.131.6.55 64250 typ srf x raddr 192.168.99.23 rport 49519
                                                                                      l
      ICE candidates a=candidate:Hc0a86317 2 UDP 2130706430 192.168.99.23 49519 typ host
                       a=sendrecv




                                                       Amoocon 2010
AG Projects                                       ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE Step 3: Ofer encoding (II)
       a=candidate:Sc0a86317 1 UDP 1694498815 62.131.6.55 64249 typ
       srf x raddr 192.168.99.23 rport 49306
         l

         ●      Foundation (Sc0a86317): Unique identif er for each candidate of the
                                                          i
                same type, same interface and STUN server (if applicable)
         ●      Component ID (1): Identif er, 1 for RTP, 2 for RTCP
                                           i
         ●      Transport (UDP): Candidate transport type
         ●      Priority (1694498815): Priority for the given component
         ●      IP address and port (62.131.6.55 64249): Component's IP and port
         ●      Type (srf x): Component type
                         l
         ●      Related address (raddr 192.168.99.23 rport 49306): Optional
                information: for relayed candidates it contains the server ref exive
                                                                             l
                address and for server ref exive candidates it contains the host
                                          l
                address.

         ●      After encoding the offer it's sent out as a regular INVITE
                                           Amoocon 2010
AG Projects                                          ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE Step 4: Allocation
          ●      The callee receives the ofer and starts his own process.
                    ●      Gather candidates
                    ●      Prioritize
                    ●      Encode SDP answer
                    ●      Send 200 OK with SDP




                                               Amoocon 2010
AG Projects                                             ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE Step 5: Verifcation
          ●      Both parties have each other's candidates
          ●      Each party pairs it's own local candidates with the
                 candidates from the remote party
          ●      List is pruned for duplicated candidates
                    ●      Both endpoints will have the same list

          ●      Each endpoints sends a connectivity check every 20ms
                    ●      STUN Binding Request from the local candidate to the remote
                    ●      The receiver generates an answer with the received IP and port
                           included
                    ●      If the response is received the check is successful




                                                 Amoocon 2010
AG Projects                                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE Step 5: Verifcation (II)
         ●       During the connectivity checks new candidates can be found
                   ●      Peer refexive candidates
                   ●      P2P media is possible if only one of the parties if behind a
                          symmetric NAT




                                                Amoocon 2010
AG Projects                                             ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




              ICE Step 6: Coordination + Communication
          ●      After all checks both endpoints will have the same set of
                 valid candidates
          ●      All negotiation has taken place at the media level,
                 through STUN
          ●      Controlling agent will decide which of the valid candidates to
                 use
                    ●      In ICE full implementations the oferer is the controlling agent
                    ●      It will do a connectivity check again, but with a “use candidate”
                           fag included in the STUN request
                    ●      If check succeeds both endpoints know where to send media to
                           each other :)




                                                 Amoocon 2010
AG Projects                                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




ICE Step 7: Confrmation
          ●      Negotiation took place at the media level
                    ●      At SIP level we don't know where media is!
          ●      If the transport address where the media is received
                 changed due to ICE negotiation, a re-INVITE must be sent to
                 update the status of any possible middle box.




                                                Amoocon 2010
AG Projects                                   ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Why ICE doesn't didn't work
          ●      Currently SDP mangling + media relaying is the most
                 common NAT traversal mechanism
          ●      If a SIP proxy mangles the SDP without taking ICE into
                 account the negotiation will be broken




                                        Amoocon 2010
AG Projects                                                      ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Why ICE doesn't didn't work (II)
        V=0
        o=- 3484393780 3484393780 IN IP4 192.168.99.53
        s=sipsimple 0.14.2
        c=IN IP4 85.17.186.6
        t=0 0
        m=audio 51354 RTP/AVP 9 8 101
        a=rtcp:51355 IN IP4 85.17.186.6
        a=rtpmap:9 G722/8000
        a=rtpmap:8 PCMA/8000
        a=rtpmap:101 telephone-event/8000
        a=fmtp:101 0-15
        a=ice-ufrag:76e08623
        a=ice-pwd:4e2db26f
        a=candidate:Sc0a86335 1 UDP 1694498815 62.131.6.55 49732 typ srf x raddr 192.168.99.53 rport 51641
                                                                       l
        a=candidate:Hc0a86335 1 UDP 2130706431 192.168.99.53 51641 typ host
        a=candidate:Sc0a86335 2 UDP 1694498814 62.131.6.55 49733 typ srf x raddr 192.168.99.53 rport 40568
                                                                       l
        a=candidate:Hc0a86335 2 UDP 2130706430 192.168.99.53 40568 typ host
        a=sendrecv


          ●      IP in the c line doesn't match any IP in the candidate list!
                    ●      ICE mismatch!

          ●      OpenSIPS + MediaProxy will come to the rescue!


                                                      Amoocon 2010
AG Projects                                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Fixing ICE in the server
          ●      The server needs to be aware of ICE
                    ●      Mangle necessary information in the SDP
                    ●      Don't block STUN checks
                    ●      Think about accounting!

          ●      Tools that needed to be modifed
                    ●      OpenSIPS (http://opensips.org)
                    ●      MediaProxy (http://mediaproxy.ag-projects.com)
                    ●      CDRTool (http://cdrtool.ag-projects.com)




                                                 Amoocon 2010
AG Projects                                   ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Fixing ICE in the server: OpenSIPS
          ●      Detect that a request is ofering ICE
          ●      Allow the user to select if a ICE candidate should be inserted
                 and the priority
          ●      Allow the user to dynamically change the behavior though
                 an AVP
          ●      Complete design: http://mediaproxy.ag-projects.com/wiki/ICE




                                        Amoocon 2010
AG Projects                                                      ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Fixing ICE in the server: OpenSIPS (II)
        V=0
        o=- 3484393780 3484393780 IN IP4 192.168.99.53
        s=sipsimple 0.14.2
        c=IN IP4 85.17.186.6
        t=0 0
        m=audio 51354 RTP/AVP 9 8 101
        a=rtcp:51355 IN IP4 85.17.186.6
        a=rtpmap:9 G722/8000
        a=rtpmap:8 PCMA/8000
        a=rtpmap:101 telephone-event/8000
        a=fmtp:101 0-15
        a=ice-ufrag:76e08623
        a=ice-pwd:4e2db26f
        a=candidate:R6ba1155 1 UDP 16777215 85.17.186.6 51354 typ relay
        a=candidate:R6ba1155 2 UDP 16777214 85.17.186.6 51355 typ relay
        a=candidate:Sc0a86335 1 UDP 1694498815 62.131.6.55 49732 typ srf x raddr 192.168.99.53 rport 51641
                                                                       l
        a=candidate:Hc0a86335 1 UDP 2130706431 192.168.99.53 51641 typ host
        a=candidate:Ha45450a 1 UDP 2130706431 10.69.69.10 51641 typ host
        a=candidate:Sc0a86335 2 UDP 1694498814 62.131.6.55 49733 typ srf x raddr 192.168.99.53 rport 40568
                                                                       l
        a=candidate:Hc0a86335 2 UDP 2130706430 192.168.99.53 40568 typ host
        a=candidate:Ha45450a 2 UDP 2130706430 10.69.69.10 40568 typ host
        a=sendrecv




                                                      Amoocon 2010
AG Projects                                           ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Fixing ICE in the server: MediaProxy
          ●      MediaProxy needs to be aware about ICE negotiation taking
                 place
          ●      Ability to relay STUN requests
          ●      Bail out silently if it was not the chosen candidate
                    ●      Both endpoints had ICE information in the SDP
                    ●      STUN checks were received from both of them




                                                Amoocon 2010
AG Projects                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Fixing ICE in the server: MediaProxy (II)




                                 Amoocon 2010
AG Projects                                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Fixing ICE in the server: recap
          ●      This solution was successfully tested at past SIPit26

          ●      OpenSIPS + MediaProxy is the frst software combination
                 to fx ICE this way ever

          ●      Software versions
                    ●      OpenSIPS >= 1.6.2)
                    ●      MediaProxy >= 2.4.2
                    ●      CDRTool >= 7.1


          ●      Free public platform available: http://sip2sip.info




                                                 Amoocon 2010
AG Projects                                                ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




What about IPv6?
          ●      Adoption will not begin tomorrow!
                    ●      Meantime: IPv6 in the backbones and IPv4 elsewhere
          ●      Still, NATs won't disappear!
          ●      ICE can be used to select between IPv6 and IPv4 candidates




                                 IPv6 For The Win!




                                                     Amoocon 2010
AG Projects                                             ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Recap
          ●      ICE will allow endpoints to try to communicate by all means

          ●      Server cooperation is needed
                    ●      STUN servers
                    ●      Mangle all necessary information not to break ICE


          ●      Published as an RFC!
                    ●      Go and implement it!


          ●      Operators will want ICE
                    ●      Who will relay HD video calls?




                                                  Amoocon 2010
AG Projects                            ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




Questions?




                                 Amoocon 2010
AG Projects                                                 ICE: the ultimate way of beating NAT in SIP
The SIP Infrastructure Experts




BYE
        BYE s ip:audience@am oocon.de SIP/ 2.0
        Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPjDb30Dx0sH-ozn9QB.cCCboyU.atR97aM
        Max-Forwards: 70
        From: "saul" <sip:saul@ag-projects.com>;tag=UCpGKVZbQQx7BUKYtiuPEX668oa9jaU7
        To: <sip:audience@amoocon.de>;tag=as59aef35c
        Call-ID: DEWDfu63OACwYeQk7MrhmRhRq.1cqqis
        CSeq: 10633 BYE
        Route: <sip:81.23.228.129;lr;ftag=UCpGKVZbQQx7BUKYtiuPEX668oa9jaU7;did=641.a8a9c553>
        User-Agent: blink-0.18.2
        Content-Length: 0

                                 You can Blink tomorrow at 14:00
                                            @saghul
                                            @agprojects



                                            saul@ag-projects.com


                                           sip:saul@ag-projects.com


                                                   Amoocon 2010

More Related Content

What's hot

Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation ProtocolMatt Bynum
 
MikroTik Hotspot 2.0 (IEEE 802.11u) - MUM Jakarta 2016
MikroTik Hotspot 2.0 (IEEE 802.11u) - MUM Jakarta 2016MikroTik Hotspot 2.0 (IEEE 802.11u) - MUM Jakarta 2016
MikroTik Hotspot 2.0 (IEEE 802.11u) - MUM Jakarta 2016Rofiq Fauzi
 
Nat traversal in WebRTC context
Nat traversal in WebRTC contextNat traversal in WebRTC context
Nat traversal in WebRTC contextAudioCodes
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and BeyondAndreas Granig
 
MQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of ThingsMQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of ThingsBryan Boyd
 
BGP Large Communities in IXPs
BGP Large Communities in IXPsBGP Large Communities in IXPs
BGP Large Communities in IXPsAPNIC
 
BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1GLC Networks
 
CCNA 1 Routing and Switching v5.0 Chapter 9
CCNA 1 Routing and Switching v5.0 Chapter 9CCNA 1 Routing and Switching v5.0 Chapter 9
CCNA 1 Routing and Switching v5.0 Chapter 9Nil Menon
 
Introduction to MQTT
Introduction to MQTTIntroduction to MQTT
Introduction to MQTTEMQ
 
Network address translation
Network address translationNetwork address translation
Network address translationVarsha Honde
 
Openwrt wireless
Openwrt wirelessOpenwrt wireless
Openwrt wireless晓东 杜
 
CCNA 1 Routing and Switching v5.0 Chapter 8
CCNA 1 Routing and Switching v5.0 Chapter 8CCNA 1 Routing and Switching v5.0 Chapter 8
CCNA 1 Routing and Switching v5.0 Chapter 8Nil Menon
 

What's hot (20)

Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation Protocol
 
MikroTik Hotspot 2.0 (IEEE 802.11u) - MUM Jakarta 2016
MikroTik Hotspot 2.0 (IEEE 802.11u) - MUM Jakarta 2016MikroTik Hotspot 2.0 (IEEE 802.11u) - MUM Jakarta 2016
MikroTik Hotspot 2.0 (IEEE 802.11u) - MUM Jakarta 2016
 
Nat traversal in WebRTC context
Nat traversal in WebRTC contextNat traversal in WebRTC context
Nat traversal in WebRTC context
 
rtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyondrtpengine - Media Relaying and Beyond
rtpengine - Media Relaying and Beyond
 
MQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of ThingsMQTT - A practical protocol for the Internet of Things
MQTT - A practical protocol for the Internet of Things
 
axi protocol
axi protocolaxi protocol
axi protocol
 
BGP on mikrotik
BGP on mikrotikBGP on mikrotik
BGP on mikrotik
 
BGP Large Communities in IXPs
BGP Large Communities in IXPsBGP Large Communities in IXPs
BGP Large Communities in IXPs
 
MikroTik Firewall : Securing your Router with Port Knocking
MikroTik Firewall : Securing your Router with Port KnockingMikroTik Firewall : Securing your Router with Port Knocking
MikroTik Firewall : Securing your Router with Port Knocking
 
BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1BGP on RouterOS7 -Part 1
BGP on RouterOS7 -Part 1
 
ICMP
ICMPICMP
ICMP
 
CCNA 1 Routing and Switching v5.0 Chapter 9
CCNA 1 Routing and Switching v5.0 Chapter 9CCNA 1 Routing and Switching v5.0 Chapter 9
CCNA 1 Routing and Switching v5.0 Chapter 9
 
BGP filter with mikrotik
BGP filter with mikrotikBGP filter with mikrotik
BGP filter with mikrotik
 
Introduction to MQTT
Introduction to MQTTIntroduction to MQTT
Introduction to MQTT
 
ICE basic
ICE basicICE basic
ICE basic
 
IPSec and VPN
IPSec and VPNIPSec and VPN
IPSec and VPN
 
Network address translation
Network address translationNetwork address translation
Network address translation
 
Openwrt wireless
Openwrt wirelessOpenwrt wireless
Openwrt wireless
 
VTI の中身
VTI の中身VTI の中身
VTI の中身
 
CCNA 1 Routing and Switching v5.0 Chapter 8
CCNA 1 Routing and Switching v5.0 Chapter 8CCNA 1 Routing and Switching v5.0 Chapter 8
CCNA 1 Routing and Switching v5.0 Chapter 8
 

Similar to ICE: The ultimate way of beating NAT in SIP

Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN FrameworkAPNIC
 
Ip атс grand stream ucm6102 functional overview and testing-eng
Ip атс grand stream ucm6102 functional overview and testing-engIp атс grand stream ucm6102 functional overview and testing-eng
Ip атс grand stream ucm6102 functional overview and testing-engVladimir Dudchenko
 
SiFive SoC IP for HPC, AI and Networking
SiFive SoC IP for HPC, AI and NetworkingSiFive SoC IP for HPC, AI and Networking
SiFive SoC IP for HPC, AI and NetworkingAijaz Qaisar
 
Jorjin Technologies - AR Partnerships with Smart Glasses - 10012020
Jorjin Technologies -  AR Partnerships with Smart Glasses - 10012020Jorjin Technologies -  AR Partnerships with Smart Glasses - 10012020
Jorjin Technologies - AR Partnerships with Smart Glasses - 10012020Curt Riley
 
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
DPDK summit 2015: It's kind of fun  to do the impossible with DPDKDPDK summit 2015: It's kind of fun  to do the impossible with DPDK
DPDK summit 2015: It's kind of fun to do the impossible with DPDKLagopus SDN/OpenFlow switch
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaJim St. Leger
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKSaúl Ibarra Corretgé
 
M3L Inc Company Profile (August 19th, 2020 version)
M3L Inc Company Profile (August 19th, 2020 version)M3L Inc Company Profile (August 19th, 2020 version)
M3L Inc Company Profile (August 19th, 2020 version)M3L Inc.
 
IPv6 Security - Myths and Reality
IPv6 Security - Myths and RealityIPv6 Security - Myths and Reality
IPv6 Security - Myths and RealitySwiss IPv6 Council
 
Will PCIe 5.0 become ubiquitous in tomorrow's SoCs?
Will PCIe 5.0 become ubiquitous in tomorrow's SoCs?Will PCIe 5.0 become ubiquitous in tomorrow's SoCs?
Will PCIe 5.0 become ubiquitous in tomorrow's SoCs?Romain Tourneau
 
The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017Jian-Hong Pan
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCMoises Silva
 

Similar to ICE: The ultimate way of beating NAT in SIP (20)

Blink: voice is not enough
Blink: voice is not enoughBlink: voice is not enough
Blink: voice is not enough
 
Ryu SDN Framework
Ryu SDN FrameworkRyu SDN Framework
Ryu SDN Framework
 
FBLajSIPScenarior.ppt
FBLajSIPScenarior.pptFBLajSIPScenarior.ppt
FBLajSIPScenarior.ppt
 
SIP Beyond VoIP
SIP Beyond VoIPSIP Beyond VoIP
SIP Beyond VoIP
 
Ip атс grand stream ucm6102 functional overview and testing-eng
Ip атс grand stream ucm6102 functional overview and testing-engIp атс grand stream ucm6102 functional overview and testing-eng
Ip атс grand stream ucm6102 functional overview and testing-eng
 
SiFive SoC IP for HPC, AI and Networking
SiFive SoC IP for HPC, AI and NetworkingSiFive SoC IP for HPC, AI and Networking
SiFive SoC IP for HPC, AI and Networking
 
Jorjin Technologies - AR Partnerships with Smart Glasses - 10012020
Jorjin Technologies -  AR Partnerships with Smart Glasses - 10012020Jorjin Technologies -  AR Partnerships with Smart Glasses - 10012020
Jorjin Technologies - AR Partnerships with Smart Glasses - 10012020
 
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
DPDK summit 2015: It's kind of fun  to do the impossible with DPDKDPDK summit 2015: It's kind of fun  to do the impossible with DPDK
DPDK summit 2015: It's kind of fun to do the impossible with DPDK
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
 
Kamailio World 2013 - SIP and MSRP over WebSocket
Kamailio World 2013 - SIP and MSRP over WebSocketKamailio World 2013 - SIP and MSRP over WebSocket
Kamailio World 2013 - SIP and MSRP over WebSocket
 
Developing rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDKDeveloping rich SIP applications with SIPSIMPLE SDK
Developing rich SIP applications with SIPSIMPLE SDK
 
M3L Inc Company Profile (August 19th, 2020 version)
M3L Inc Company Profile (August 19th, 2020 version)M3L Inc Company Profile (August 19th, 2020 version)
M3L Inc Company Profile (August 19th, 2020 version)
 
IPv6 Security - Myths and Reality
IPv6 Security - Myths and RealityIPv6 Security - Myths and Reality
IPv6 Security - Myths and Reality
 
5. profinet network design andy gilbert
5. profinet network design   andy gilbert5. profinet network design   andy gilbert
5. profinet network design andy gilbert
 
Profinet design basics - Andy Williams
Profinet design basics - Andy WilliamsProfinet design basics - Andy Williams
Profinet design basics - Andy Williams
 
Will PCIe 5.0 become ubiquitous in tomorrow's SoCs?
Will PCIe 5.0 become ubiquitous in tomorrow's SoCs?Will PCIe 5.0 become ubiquitous in tomorrow's SoCs?
Will PCIe 5.0 become ubiquitous in tomorrow's SoCs?
 
The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017The Considerations for Internet of Things @ 2017
The Considerations for Internet of Things @ 2017
 
Sangoma SS7 Gateway Training
Sangoma SS7 Gateway TrainingSangoma SS7 Gateway Training
Sangoma SS7 Gateway Training
 
FreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBCFreeSWITCH as a Kickass SBC
FreeSWITCH as a Kickass SBC
 
Profinet network design at e+h june 2018 andy williams
Profinet network design at e+h june 2018   andy williams Profinet network design at e+h june 2018   andy williams
Profinet network design at e+h june 2018 andy williams
 

More from Saúl Ibarra Corretgé

Challenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicChallenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicSaúl Ibarra Corretgé
 
The Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetThe Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetSaúl Ibarra Corretgé
 
Jitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveJitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveSaúl Ibarra Corretgé
 
Jitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedJitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedSaúl Ibarra Corretgé
 
Get a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceGet a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceSaúl Ibarra Corretgé
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCSaúl Ibarra Corretgé
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCSaúl Ibarra Corretgé
 
Jitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostJitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostSaúl Ibarra Corretgé
 
WebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTWebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTSaúl Ibarra Corretgé
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/oSaúl Ibarra Corretgé
 
Videoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCVideoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCSaúl Ibarra Corretgé
 
SylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSaúl Ibarra Corretgé
 
Escalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasEscalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasSaúl Ibarra Corretgé
 

More from Saúl Ibarra Corretgé (20)

Challenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemicChallenges running Jitsi Meet at scale during the pandemic
Challenges running Jitsi Meet at scale during the pandemic
 
The Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi MeetThe Road to End-to-End Encryption in Jitsi Meet
The Road to End-to-End Encryption in Jitsi Meet
 
Jitsi: State of the Union 2020
Jitsi: State of the Union 2020Jitsi: State of the Union 2020
Jitsi: State of the Union 2020
 
Jitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and loveJitsi Meet: our tale of blood, sweat, tears and love
Jitsi Meet: our tale of blood, sweat, tears and love
 
Jitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy mindedJitsi Meet: Video conferencing for the privacy minded
Jitsi Meet: Video conferencing for the privacy minded
 
Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019Jitsi - Estado de la unión 2019
Jitsi - Estado de la unión 2019
 
Get a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experienceGet a room! Spot: the ultimate physical meeting room experience
Get a room! Spot: the ultimate physical meeting room experience
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
 
Going Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTCGoing Mobile with React Native and WebRTC
Going Mobile with React Native and WebRTC
 
Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)Jitsi: Estado de la Unión (2018)
Jitsi: Estado de la Unión (2018)
 
Jitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-hostJitsi: state-of-the-art video conferencing you can self-host
Jitsi: state-of-the-art video conferencing you can self-host
 
WebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoTWebRTC: El epicentro de la videoconferencia y IoT
WebRTC: El epicentro de la videoconferencia y IoT
 
Jitsi: Open Source Video Conferencing
Jitsi: Open Source Video ConferencingJitsi: Open Source Video Conferencing
Jitsi: Open Source Video Conferencing
 
Jitsi: State of the Union
Jitsi: State of the UnionJitsi: State of the Union
Jitsi: State of the Union
 
libuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/olibuv: cross platform asynchronous i/o
libuv: cross platform asynchronous i/o
 
Videoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTCVideoconferencias: el santo grial de WebRTC
Videoconferencias: el santo grial de WebRTC
 
SylkServer: State of the art RTC application server
SylkServer: State of the art RTC application serverSylkServer: State of the art RTC application server
SylkServer: State of the art RTC application server
 
Escalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincherasEscalabilidad horizontal desde las trincheras
Escalabilidad horizontal desde las trincheras
 
A deep dive into libuv
A deep dive into libuvA deep dive into libuv
A deep dive into libuv
 
Planning libuv v2
Planning libuv v2Planning libuv v2
Planning libuv v2
 

Recently uploaded

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Recently uploaded (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

ICE: The ultimate way of beating NAT in SIP

  • 1. AG Projects ICE: the ultimate way of beating NAT in SIP ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Saúl Ibarra Corretgé | AG Projects Amoocon 2010
  • 2. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Index ● How NAT afects SIP ● Solving the problem ● In the client ● In the network ● ICE: the ultimate solution ● Why ICE doesn't didn't work ● Fixing ICE in the server ● OpenSIPS ● MediaProxy ● What about IPv6? ● Q&A Amoocon 2010
  • 3. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts How NAT afects SIP ● Internet providers use NATs ● Multiplex private addresses into a single public one ● 'Hide' inner network from the outside ● NATs create a binding between the internal/private address and the external/public ● IP and port in the packets is modifed with the binding information Amoocon 2010
  • 4. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts How NAT afects SIP (II) Amoocon 2010
  • 5. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts How NAT afects SIP (III) ● This changes in the source IP/port afect SIP because it will contain private IP addresses ● Contact header: in REGISTER requests it will be used for targeting incoming INVITEs ● SDP: target address and port for media ● This results in one way audio / no media at all! ● Can this be solved? ● Contact header for REGISTER: a proxy can use the received IP/port. ● SDP: hard to solve, as ports are dynamically allocated Amoocon 2010
  • 6. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts How NAT afects SIP (IV) IN VITE s ip:3333@s ip2s ip.info SIP/ 2.0 Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPj.OB8RPYvcZIaBcu.uom4xvbsyw9RBwlW Max-Forwards: 70 From: "saul" <sip:saghul@sip2sip.info>;tag=N0mSaBvIOXOLC0sNpJ9oJvrpJMuSeC8p To: <sip:3333@sip2sip.info> Contact: <sip:dezruwmf@192.168.99.23:49919> Call-ID: PQ4m4UxA9VHDJ.uLGXzKOQm-9ljIZGvH CSeq: 24149 INVITE Route: <sip:81.23.228.150;lr> Allow: SUBSCRIBE, NOTIFY, PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, MESSAGE Supported: 100rel User-Agent: blink-0.18.2 Content-Type: application/sdp Content-Length: 387 V=0 o=- 3484383368 3484383368 IN IP4 192.168.99.23 s=blink-0.18.2 c=IN IP4 192.168.99.23 t=0 0 m=audio 50076 RTP/AVP 0 8 9 101 a=rtcp:50077 IN IP4 192.168.99.23 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv Amoocon 2010
  • 7. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Solving the problem in the client ● Clients may try to solve their NAT issue by using client-side NAT traversal techniques ● Session Traversal Utilities for NAT (STUN) – RFC 5389 ● Traversal Using Relays around NAT (TURN) – RFC 5766 ● However... ● TURN hasn't been widely deployed ● STUN can't be used in case of symmetric NAT – Most common type of NAT? ● Cooperation from the server side ● Deployment of STUN/TURN servers ● Servers don't trust clients Amoocon 2010
  • 8. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Solving the problem in the server ● Insert a media relay in the path so that 2 way media works in the worst case ● SDP mangling ● Ugly hacks to avoid using a media relay every time ● If both users come from the same network ● Other local policies Amoocon 2010
  • 9. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Solving the problem in the server (II) Amoocon 2010
  • 10. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE: the ultimate solution! ● Interactive Connection Establishment ● RFC 5245. Yes, it's an RFC! ● Combines client-side techniques with server support to fnd the most appropriate way of communicating with the other endpoint ● STUN + TURN ● Media should only be relayed in the worst case ● Both endpoints behind symmetric NATs ● Start sending media when it's guarantied that there will be a successful communication ● Clients don't need to know their NAT type ● A complex protocol ● It took ICE 6 years to become an RFC! ● Not many fully capable ICE clients... but you can Blink! :) Amoocon 2010
  • 11. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 1: Allocation ● Before sending the INVITE ● Gather all possible candidates ● Candidate types ● Host candidates: machines local network interfaces ● Server refexive candidates: learnt by using STUN ● Relayed candidates: allocated with STUN Relay Usage requests (RFC 5766) Amoocon 2010
  • 12. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 2: Prioritization priority = (2^24)*(type preference) + (2^8 )*(local preference) + (2^0)*(256 -componentID) ● Type preference: Depends on candidate type (0 for relayed candidate, 126 for host candidate) ● Local preference: Local policy for selecting different priority if candidates are same type. Also IPv4 / IPv6. ● Component ID: 1 for RTP, 2 for RTCP Amoocon 2010
  • 13. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 3: Ofer encoding V=0 o=- 3484389594 3484389594 IN IP4 192.168.99.23 s=blink-0.18.2 c=IN IP4 192.168.99.23 t=0 0 m=audio 64249 RTP/AVP 104 103 102 9 0 8 101 a=rtcp:64250 IN IP4 62.131.6.55 a=rtpmap:104 speex/32000 a=rtpmap:103 speex/16000 a=rtpmap:102 speex/8000 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ice-ufrag:241ffa10 ICE attributes a=ice-pwd:2f5a42f7 a=candidate:Sc0a86317 1 UDP 1694498815 62.131.6.55 64249 typ srf x raddr 192.168.99.23 rport 49306 l a=candidate:Hc0a86317 1 UDP 2130706431 192.168.99.23 49306 typ host a=candidate:Sc0a86317 2 UDP 1694498814 62.131.6.55 64250 typ srf x raddr 192.168.99.23 rport 49519 l ICE candidates a=candidate:Hc0a86317 2 UDP 2130706430 192.168.99.23 49519 typ host a=sendrecv Amoocon 2010
  • 14. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 3: Ofer encoding (II) a=candidate:Sc0a86317 1 UDP 1694498815 62.131.6.55 64249 typ srf x raddr 192.168.99.23 rport 49306 l ● Foundation (Sc0a86317): Unique identif er for each candidate of the i same type, same interface and STUN server (if applicable) ● Component ID (1): Identif er, 1 for RTP, 2 for RTCP i ● Transport (UDP): Candidate transport type ● Priority (1694498815): Priority for the given component ● IP address and port (62.131.6.55 64249): Component's IP and port ● Type (srf x): Component type l ● Related address (raddr 192.168.99.23 rport 49306): Optional information: for relayed candidates it contains the server ref exive l address and for server ref exive candidates it contains the host l address. ● After encoding the offer it's sent out as a regular INVITE Amoocon 2010
  • 15. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 4: Allocation ● The callee receives the ofer and starts his own process. ● Gather candidates ● Prioritize ● Encode SDP answer ● Send 200 OK with SDP Amoocon 2010
  • 16. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 5: Verifcation ● Both parties have each other's candidates ● Each party pairs it's own local candidates with the candidates from the remote party ● List is pruned for duplicated candidates ● Both endpoints will have the same list ● Each endpoints sends a connectivity check every 20ms ● STUN Binding Request from the local candidate to the remote ● The receiver generates an answer with the received IP and port included ● If the response is received the check is successful Amoocon 2010
  • 17. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 5: Verifcation (II) ● During the connectivity checks new candidates can be found ● Peer refexive candidates ● P2P media is possible if only one of the parties if behind a symmetric NAT Amoocon 2010
  • 18. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 6: Coordination + Communication ● After all checks both endpoints will have the same set of valid candidates ● All negotiation has taken place at the media level, through STUN ● Controlling agent will decide which of the valid candidates to use ● In ICE full implementations the oferer is the controlling agent ● It will do a connectivity check again, but with a “use candidate” fag included in the STUN request ● If check succeeds both endpoints know where to send media to each other :) Amoocon 2010
  • 19. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts ICE Step 7: Confrmation ● Negotiation took place at the media level ● At SIP level we don't know where media is! ● If the transport address where the media is received changed due to ICE negotiation, a re-INVITE must be sent to update the status of any possible middle box. Amoocon 2010
  • 20. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Why ICE doesn't didn't work ● Currently SDP mangling + media relaying is the most common NAT traversal mechanism ● If a SIP proxy mangles the SDP without taking ICE into account the negotiation will be broken Amoocon 2010
  • 21. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Why ICE doesn't didn't work (II) V=0 o=- 3484393780 3484393780 IN IP4 192.168.99.53 s=sipsimple 0.14.2 c=IN IP4 85.17.186.6 t=0 0 m=audio 51354 RTP/AVP 9 8 101 a=rtcp:51355 IN IP4 85.17.186.6 a=rtpmap:9 G722/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ice-ufrag:76e08623 a=ice-pwd:4e2db26f a=candidate:Sc0a86335 1 UDP 1694498815 62.131.6.55 49732 typ srf x raddr 192.168.99.53 rport 51641 l a=candidate:Hc0a86335 1 UDP 2130706431 192.168.99.53 51641 typ host a=candidate:Sc0a86335 2 UDP 1694498814 62.131.6.55 49733 typ srf x raddr 192.168.99.53 rport 40568 l a=candidate:Hc0a86335 2 UDP 2130706430 192.168.99.53 40568 typ host a=sendrecv ● IP in the c line doesn't match any IP in the candidate list! ● ICE mismatch! ● OpenSIPS + MediaProxy will come to the rescue! Amoocon 2010
  • 22. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Fixing ICE in the server ● The server needs to be aware of ICE ● Mangle necessary information in the SDP ● Don't block STUN checks ● Think about accounting! ● Tools that needed to be modifed ● OpenSIPS (http://opensips.org) ● MediaProxy (http://mediaproxy.ag-projects.com) ● CDRTool (http://cdrtool.ag-projects.com) Amoocon 2010
  • 23. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Fixing ICE in the server: OpenSIPS ● Detect that a request is ofering ICE ● Allow the user to select if a ICE candidate should be inserted and the priority ● Allow the user to dynamically change the behavior though an AVP ● Complete design: http://mediaproxy.ag-projects.com/wiki/ICE Amoocon 2010
  • 24. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Fixing ICE in the server: OpenSIPS (II) V=0 o=- 3484393780 3484393780 IN IP4 192.168.99.53 s=sipsimple 0.14.2 c=IN IP4 85.17.186.6 t=0 0 m=audio 51354 RTP/AVP 9 8 101 a=rtcp:51355 IN IP4 85.17.186.6 a=rtpmap:9 G722/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ice-ufrag:76e08623 a=ice-pwd:4e2db26f a=candidate:R6ba1155 1 UDP 16777215 85.17.186.6 51354 typ relay a=candidate:R6ba1155 2 UDP 16777214 85.17.186.6 51355 typ relay a=candidate:Sc0a86335 1 UDP 1694498815 62.131.6.55 49732 typ srf x raddr 192.168.99.53 rport 51641 l a=candidate:Hc0a86335 1 UDP 2130706431 192.168.99.53 51641 typ host a=candidate:Ha45450a 1 UDP 2130706431 10.69.69.10 51641 typ host a=candidate:Sc0a86335 2 UDP 1694498814 62.131.6.55 49733 typ srf x raddr 192.168.99.53 rport 40568 l a=candidate:Hc0a86335 2 UDP 2130706430 192.168.99.53 40568 typ host a=candidate:Ha45450a 2 UDP 2130706430 10.69.69.10 40568 typ host a=sendrecv Amoocon 2010
  • 25. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Fixing ICE in the server: MediaProxy ● MediaProxy needs to be aware about ICE negotiation taking place ● Ability to relay STUN requests ● Bail out silently if it was not the chosen candidate ● Both endpoints had ICE information in the SDP ● STUN checks were received from both of them Amoocon 2010
  • 26. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Fixing ICE in the server: MediaProxy (II) Amoocon 2010
  • 27. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Fixing ICE in the server: recap ● This solution was successfully tested at past SIPit26 ● OpenSIPS + MediaProxy is the frst software combination to fx ICE this way ever ● Software versions ● OpenSIPS >= 1.6.2) ● MediaProxy >= 2.4.2 ● CDRTool >= 7.1 ● Free public platform available: http://sip2sip.info Amoocon 2010
  • 28. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts What about IPv6? ● Adoption will not begin tomorrow! ● Meantime: IPv6 in the backbones and IPv4 elsewhere ● Still, NATs won't disappear! ● ICE can be used to select between IPv6 and IPv4 candidates IPv6 For The Win! Amoocon 2010
  • 29. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Recap ● ICE will allow endpoints to try to communicate by all means ● Server cooperation is needed ● STUN servers ● Mangle all necessary information not to break ICE ● Published as an RFC! ● Go and implement it! ● Operators will want ICE ● Who will relay HD video calls? Amoocon 2010
  • 30. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts Questions? Amoocon 2010
  • 31. AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts BYE BYE s ip:audience@am oocon.de SIP/ 2.0 Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPjDb30Dx0sH-ozn9QB.cCCboyU.atR97aM Max-Forwards: 70 From: "saul" <sip:saul@ag-projects.com>;tag=UCpGKVZbQQx7BUKYtiuPEX668oa9jaU7 To: <sip:audience@amoocon.de>;tag=as59aef35c Call-ID: DEWDfu63OACwYeQk7MrhmRhRq.1cqqis CSeq: 10633 BYE Route: <sip:81.23.228.129;lr;ftag=UCpGKVZbQQx7BUKYtiuPEX668oa9jaU7;did=641.a8a9c553> User-Agent: blink-0.18.2 Content-Length: 0 You can Blink tomorrow at 14:00 @saghul @agprojects saul@ag-projects.com sip:saul@ag-projects.com Amoocon 2010