SIP Registration and Location



Similar documents
SIP and ENUM. Overview DENIC. Introduction to SIP. Addresses and Address Resolution in SIP ENUM & SIP

NAT TCP SIP ALG Support

Service Announcements for Hot-Spots: Enabling Automated Access and Provider Selection for (WLAN-based) Voice Upperside WiFi Voice 2005

Creating your own service profile for SJphone

A P2P SIP Architecture - Two Layer Approach - draft-sipping-shim-p2p-arch-00.txt

ENUM: Migrating to VoIP. P2P Voice Applications

Cisco Expressway Basic Configuration

Multimedia Communication in the Internet. SIP: Advanced Topics. Dorgham Sisalem, Sven Ehlert Mobile Integrated Services FhG FOKUS

1 SIP Carriers. 1.1 Tele Warnings Vendor Contact Versions Verified SIP Carrier status as of Jan 1,

SIP OVER NAT. Pavel Segeč. University of Žilina, Faculty of Management Science and Informatics, Slovak Republic

Chapter 10 Session Initiation Protocol. Prof. Yuh-Shyan Chen Department of Computer Science and Information Engineering National Taipei University

Request for Comments: August 2006

EE4607 Session Initiation Protocol

SIP Essentials Training

RELOAD Usages for P2P Data Storage and Discovery

Mobile P2PSIP. Peer-to-Peer SIP Communication in Mobile Communities

Session Initiation Protocol (SIP) The Emerging System in IP Telephony

Cisco TelePresence Video Communication Server Basic Configuration (Control with Expressway)

TSIN02 - Internetworking

INTRODUCTION OF VOIP AND SIP SECURITY 2

LifeSize Transit Deployment Guide June 2011

Overview ENUM ENUM. VoIP Introduction (2/2) VoIP Introduction (1/2)

GRUU. Jonathan Rosenberg Cisco Systems

Internet Control Protocols Reading: Chapter 3

IP-Telephony SIP & MEGACO

SIP Messages. 180 Ringing The UA receiving the INVITE is trying to alert the user. This response MAY be used to initiate local ringback.

Session Initiation Protocol (SIP)

SIP: Protocol Overview

Preparatory Meeting for Phase 2 of Philippine National ENUM Trial

Best Practices for SIP Security

Session Initiation Protocol Deployment in Ad-Hoc Networks: a Decentralized Approach

Formación en Tecnologías Avanzadas

Bria iphone Edition User Guide

Application Note Multiple SIParator Distribution

This guide provides detailed information on how to configure and use server redundancy on Yealink IP phones.

Technical Manual 3CX Phone System for Windows

Session Initiation Protocol (SIP)

Media Gateway Controller RTP

7 SIP (II) Call flow for basic call scenario In the case of registration and finding the SIP user Collecting the bill Multiparty conferencing with SIP

Voice over IP Fundamentals

SIP and Mobility: IP Multimedia Subsystem in 3G Release 5

CommuniGate Pro Real-Time Features. CommuniGate Pro Internet Communications VoIP, , Collaboration, IM

3 The Network Architecture

MODELLING OF INTELLIGENCE IN INTERNET TELEPHONE SYSTEM

Advanced Networking Voice over IP & Other Multimedia Protocols Some SIP Advanced Topics

SIP : Session Initiation Protocol

CompleteSBC: Getting Started Guide

Implementing Intercluster Lookup Service

nexvortex SIP Trunking

Application Notes for Avaya IP Office 7.0 Integration with Skype Connect R2.0 Issue 1.0

Multimedia & Protocols in the Internet - Introduction to SIP

Introduction to Network Operating Systems

Session Initiation Protocol and Services

Network Convergence and the NAT/Firewall Problems

Mobility User mobility Service mobility 3GPP

VoIP Server Reference

White paper. SIP An introduction

3.1 SESSION INITIATION PROTOCOL (SIP) OVERVIEW

Voice over IP & Other Multimedia Protocols. SIP: Session Initiation Protocol. IETF service vision. Advanced Networking

Network Working Group. Switch October Session Initiation Protocol (SIP) Extension Header Field for Service Route Discovery During Registration

Application Notes for Configuring Avaya IP Office 9.0 with HIPCOM SIP Trunk Issue 1.0

How To Guide. SIP Trunking Configuration Using the SIP Trunk Page

This guide provides detailed information on how to configure and use server redundancy on Yealink IP phones.

SIP Trunking Manual Technical Support Web Site: (registration is required)

Application notes for SIPERA UC-Sec 4.0 Remote User Enablement Solution with Avaya Multimedia Communication System 5100 release 4.0 Issue 1.

Acano solution. Third Party Call Control Guide. March E

VoIP LAB. 陳 懷 恩 博 士 助 理 教 授 兼 所 長 國 立 宜 蘭 大 學 資 訊 工 程 研 究 所 TEL: # 255

Desktop sharing with SIP

IP PBX. SD Card Slot. FXO Ports. PBX WAN port. FXO Ports LED, RED means online

A Comparative Study of Signalling Protocols Used In VoIP

The SIP School- 'Mitel Style'

RARP: Reverse Address Resolution Protocol

Desktop sharing with the Session Initiation Protocol

Internet Technology Voice over IP

NAT and Firewall Traversal with STUN / TURN / ICE

DEPLOYMENT GUIDE Version 1.2. Deploying the BIG-IP LTM for SIP Traffic Management

SIP Introduction. Jan Janak

Application Note. Firewall Requirements for the Onsight Mobile Collaboration System and Hosted Librestream SIP Service v5.0

ECMA TR/91. Enterprise Communication in Next Generation Corporate Networks (NGCN) involving Public Next Generation Networks (NGN)

Application Notes for Configuring Cablevision Optimum Voice SIP Trunking with Avaya IP Office - Issue 1.1

Network Security TCP/IP Refresher

Bria BlackBerry Edition User Guide

SIP: Ringing Timer Support for INVITE Client Transaction

Voice-Over-IP. Daniel Zappala. CS 460 Computer Networking Brigham Young University

Multimedia Communications Voice over IP

Skype Connect Getting Started Guide

IP Ports and Protocols used by H.323 Devices

Special Module on Media Processing and Communication

Application Notes Rev. 1.0 Last Updated: January 9, 2015

White Paper. Traversing Firewalls with Video over IP: Issues and Solutions

Two Standards: H.323 / SIP Bridging both worlds. João Pereira - FCCN - Portugal

Multicasting with Mobile IP & The Session Initiation Protocol

SIP: Ringing Timer Support for INVITE Client Transaction

Configuration Notes 0215

SIP Trunking Manual. For Samsung OfficeServ. Sep 18, 2006 doc v Sungwoo Lee Senior Engineer

Session Initiation Protocol (SIP) Chapter 5

Developing Higher Density Solutions with Dialogic Host Media Processing Software

VoIP. What s Voice over IP?

Avaya Aura SIP Trunking Training

Background 1 Table 1 Software & Firmware Versions Tested 1 Figure 1 Integra s Universal Access (UA) IP PBX Test Configuration 1

Transcription:

Registration and Location 1 Recap tzi.org alice@ruin Lookup sip.bar.com User Lookup bar.com bob@foo INVITE sip:bob@bar.com 100 Trying INVITE sip:bob@foo.bar.com 100 Trying 200 OK 200 OK ACK Media Streams Subsequent requests 2

User Location call signaling Arbitrary protocol (beyond the scope of ) INVITE request server (redirect or proxy) Locate callee Location server explicit registrations utmp entries awareness protocols finger, rwho LDAP, X.500, DB server asks location server where to find callee Location server returns list of contact addresses server proxies or redirects request according to address list 3 User Location INVITE sip:jo@tzi.org /2.0 To: sip:jo@tzi.org From: sip:bergmann@tzi.org;tag=4711 Contact: sip:bergmann@134.102.218.57 134.102.218.57 1 3 /2.0 302 Moved Temporarily Contact: sip:jo@134.102.218.59 sip:tzi.org Redirect / Proxy Administrative Entity ( ) Registrar Location 2 DB Registrar Retrieve registration information from DB sip:jo@tzi.org sip:jo@134.102.218.59 sip:joerg@134.102.218.86 4

sip:tzi.org Redirect / Proxy Store registration information in DB DB User Registration (1) Administrative Entity ( ) Location 2 Registrar REGISTER sip:tzi.org /2.0 To: sip:jo@tzi.org From: sip:jo@tzi.uni-bremen.de Contact: sip:jo@134.102.218.59, sip:joerg@134.102.218.86 3 1 /2.0 200 OK Expires: 3600 134.102.218.59 sip:jo@tzi.org sip:jo@134.102.218.59 sip:joerg@134.102.218.86 134.102.218.86 5 User Registration (2) Send REGISTER request to registrar Request URI sip:domain registrar may refuse requests for foreign domains REGISTER sip:tzi.org /2.0 To: sip:jo@tzi.org From: sip:jo@tzi.uni-bremen.de Contact: sip:jo@134.102.218.1, sip:joerg@134.102.218.86 To: canonical name for registered user (usually sip:user@domain) From: responsible person (may vary from To: for third party registration) Contact: contact information for the registered user address, transport parameters, redirect/proxy, capabilities Specified addresses are merged with existing registrations Registrar denotes expiration time in Expires: header Client refreshes registration before expiry 6

Registration Expiry Client requests lifetime Contact:-header parameter expires message header field Expires: Relative duration (seconds) RFC 2543: absolute date allowed (RFC 1123, only GMT) Default if no or malformed expiry time requested: 3600 seconds Registrar may use lower value, indicated in 200 OK Registrar must not increase expiry interval May decline request with 423 Registration Too Brief Include Min-Expiry: header After expiration, registrar silently discards corresponding database entries 7 Add/update Registration Entries Retrieve all entries for user@domain (specified in To:-header) from database Compare with Contact:-addresses according to scheme-specific rules: Add addresses for which no entries exist Entries being equal to a contact address are updated Otherwise return 200 OK response Include all entries for user@domain Response to REGISTER to include all registered Contacts 8

Lookup and Delete Lookup entries: No Contact:-header in request Current registrations are returned in OK response For further processing: Client uses q-parameter to determine relative order Delete entries: Expires: 0 Delete URIs specified in Contact:-Header from database Delete all entries for user: Contact: * 9 Parallel vs. Sequential Forking jo sip:jo@pda-jo.tzi.org jo tel:+1-555-12345678 jo sip:abx20921@voicemail q=0.8 q=0.8 q=0.1 DB INVITE sip:jo@tzi.org Lookup 'jo' INVITE INVITE pda-jo ISDN Caller Proxy -ISDN GW 12345678 Contact-Parameter q for weighted contacts Forking proxies may group by q-value example: call voicemail system only if no answer from other UAs voicemail 10

Parallel vs. Sequential Forking jo sip:jo@pda-jo.tzi.org jo tel:+1-555-12345678 jo sip:abx20921@voicemail q=0.8 q=0.8 q=0.1 DB INVITE sip:jo@tzi.org Lookup 'jo' 408 Timeout 408 Timeout pda-jo ISDN Caller Proxy INVITE sip:abx20921@voicemail -ISDN GW 12345678 No success Proceed with lower q-values Higher call setup delay Less REGISTER requests necessary voicemail 11 Finding a Local Registrar Multicast REGISTER request Send link-local request to sip.mcast.net (224.0.1.75) Use address of first server that responds with OK If other OK responses, use sender addresses as fallback Alternatively, use configured registrar address Use DNS lookup on domain name to register with Other mechanisms out-of-scope of core spec. Examples: DHCP DNS SRV lookup on domain name obtained via DHCP If no server found, query A or AAAA record Service Location Protocol (SLP), 12

Link-local Multicast Registration Registrar server: Store registration Return OK response DB 134.102.218.99 2 200 OK User agent: Silently drop REGISTER request 134.102.218.45 134.102.218.1 REGISTER 1 registrar is 134.102.218.99 134.102.218.61 DB User agent: Silently cache contact address 13 Extended Registration Functions (1) Registrar is the initial point of contact for a UA Idea: provide (user-specific) configuration and other information in REGISTER response Allows for centralized control using standard mechanisms Sample services 1. Service Route Discovery 2. Globally Routable UA URIs 3. UA capabilities or preferences 14

Service Route Discovery Dynamically configure home service proxies for UAs Proxies to be traversed first for outbound requests Routing of incoming requests can be enforced by infrastructure Routing of responses implied from Via: headers Simple extension header returned by registrar Service-Route: <sip:sp1.example.com;lr>, <sip:sp2.example.com;lr> Syntax similar to Route: header Used by UA subsequently for loose source routing Included in Route: header Sample usages: request authorization, service provisioning, 15 Globally Routable UA URI (GRUU) Users may be registered at multiple UAs Incoming requests may be forked to all UAs May need to direct a request to a particular UA Examples: Call Transfer, Conferencing, Presence Add an instance identification for the UA: (AoR, Instance ID) pair Referral: AoR + GRUU + Instance ID UA UA A Method Routing UA UA C sip:jo@tzi.org S1 S1 Dialog S2 S2 UA UA B Instance ID Dynamically Generated GRUU UA UA D 16

GRUU (2) GRUUs are UA URIs that can be handed out to third parties Resolve to the domain (and thus proxy) of the UA Can be mapped by the proxy to a specific UA Types of GRUUs Public: the identity (the Address of Record) can be derived from the GRUU sip:jo@netlab.tkk.fi;gr=1234567890 Temporary: the identity cannot be derived GRUUs may be cryptographically generated to minimize the state to be maintained sip:khfdshf84fkh@netlab.tkk.fi;gr gr parameter indicates that the URI is a GRUU GRUUs are usually generated by a proxy Public GRUUs may also be created by a UA, e.g., sip:jo@130.233.152.81;gr 17 GRUU (3) Registration for sip:jo@acm.org UA provides Instance ID per Contact: header and indicates support Contact: <sip:jo@cl42.acm.org>;+sip.instance="urn:uuid:32fed8 Supported: gruu Registrar assigns public and temporary GRUU per Contact: header Contact: <sip:jo@cl42.acm.org>;pub-gruu= sip:jo@cl42.acm.org;gr= urn:uuid:32fed... ;temp-gruu= sip:dsiah-0=@acm.org;gr ;+sip.instance= urn:uuid:32fed8 Valid for the lifetime of this UA s registration Local proxies ensure proper routing to the right UA UA may place GRUU in Contact: header in later requests Contact: <sip:dsiah-0=@acm.org;gr> Remote UAs will use GRUU to send messages to REFER sip:bergmann@tzi.org /2.0 Refer-To: <sip:dsiah-0=@acm.org;gr> 18

tzi.org alice@ruin Lookup Recap (Part II) sip.bar.com User Lookup bar.com bob@foo INVITE sip:bob@bar.com 100 Trying 200 OK INVITE sip:bob@foo.bar.com 100 Trying 200 OK ACK Media Streams Subsequent requests 19 Global Architecture Endpoint backbone network Provider X domain Endpoint signaling for initial call routing and setup in-call signaling RTP media streams Endpoint Local domain Provider Y domain Endpoint 20

Address Resolution Steps Domain Name System Proxy 1 Proxy 2 UA 1 sip:ob@tzi.org 3 2 1 UA 2 sip:jo@acm.org 21 Address Resolution Steps Domain Name System Proxy 1 Proxy 2 UA 1 sip:ob@tzi.org 1. Client uses configuration information to locate outbound proxy. May use DNS for address resolution. All requests sent to proxy. UA 2 sip:jo@acm.org 22

Address Resolution Steps Domain Name System Proxy 1 Proxy 2 UA 1 sip:ob@tzi.org 2. Proxy checks for domain suffix. Consults location service (e.g., DNS). Uses DNS to locate remote domain. DNS yields address of proxy 2. UA 2 sip:jo@acm.org 23 Address Resolution Steps Domain Name System Proxy 1 Proxy 2 UA 1 sip:ob@tzi.org 3. Proxy checks for domain suffix. Consults location service (registration) to determine current address of jo@acm.org. UA 2 sip:jo@acm.org 24

Address Resolution Steps Domain Name System Proxy 1 Proxy 2 UA 1 sip:ob@tzi.org 4. UA 2 validates the URI against active users to alert the right one or reject. UA 2 sip:jo@acm.org 25 Address Resolution for Phone Numbers Domain Name System Proxy 1 Proxy 2 UA 1 sip:+49-421-218-1 tel:+49-421-201-7028 UA 2 tel:+49-421-201-7028 26

Finding the Next Hop for tel: URIs UAC may use a (manually) configured outbound proxy Outbound proxy may also have be learned upon registration If request URI contains IP address and port, message can be sent directly Otherwise, determine next hop server via DNS Use NAPTR RR (+D2U/D2T/D2S, S+D2T/D2S) to obtain SRV records Query for SRV RR: _sip._udp, _sip._tcp, _sips._tcp for all supported transport protocols If entries found, try as specified in RFC 2782 If no entries found, use UDP for sip: URIs and TCP for sips: URIs Query A or AAAA records for IP address 27 (ENUM) DNS Lookup Process tel:+49-421-201-7028 sip:jo@tzi.org mailto:jo@tzi.org jo@ _sip._tcp.tzi.org _sip._udp.tzi.org sip:jo@damn.tzi.org: 5060;transport=tcp sip:jo@134.102.218.67: 40987;transport=tcp ENUM service lookup Uses DNS NAPTR Resource Records NAPTR RR lookup to select preferred services Based upon transport protocols and TLS SRV RR lookup for load balancing May or may not yield IP address A or AAAA lookup to determine IP address(es) associated with name 28

Background Background: Dynamic Delegation Discovery System (DDDS) RFC 3401, 3402, 3403, RFC 3761, RFC 3764 Abstract concept Map Application Unique String (AUS) to some data Based upon a (distributed) database Indexed by keys Lookup yields rule set: matching + substitution rules (regexp-like) Result may point to a different location in the database Algorithm: repeated substitution applied to AUS until a terminal symbol is reached Effect: Allow delegation of responsibility to store some data for an AUS (and thus to delegate mapping) 29 Step 1: DDDS General Operation Application Unique String First Well-Known Rule First key = = Identity Key Lookup key in database Delegation of Responsibility AUS Rule set Key Apply rule set to AUS until non-empty result is obtained that meets the application requirements no? Terminal rule? yes Desired result 30

Step 1: NAPTR Resource Records Uses DDDS with DNS as distributed database Key: DNS name Order Preference Flags Services regexp Replacement Order: absolute sorting of rules; first matching one is used Preference: application-specific priority indication Flags: control rule processing; e.g. indicate terminal rule Services: available services on this delegation path regexp: substitution rule for Application Unique String Mutually exclusive Replacement: replacement for DNS name (= key) 31 Step 1: ENUM Lookup Application unique string: tel:+49-421-201-7028 +49-421-201-7028 +494212017028 First well-known rule: identity Database key: transformation into valid DNS name 1. Remove leading + : 494212017028 2. Put dots between digits: 4.9.4.2.1.2.0.1.7.0.2.8 3. Reverse order of digits: 8.2.0.7.1.0.2.1.2.4.9.4 4. Add e164.arpa : 8.2.0.7.1.0.2.1.2.4.9.4.e164.arpa Yields the domain name used to query for NAPTR records Flags: u to indicate terminal rule Service: E2U+servicespec[+servicespec] ENUM services: sip, h323, pres, 32

Step 1: Lookup for ENUM Type Order Preference Flags Services regexp Replacement Example: (and other) entries for a user $ORIGIN 8.2.0.7.1.0.2.1.2.4.9.4.e164.arpa IN NAPTR IN NAPTR IN NAPTR 10 100 u E2U+sip!^.*$!sip:jo@tzi.org!. 10 101 u E2U+pres!^.*$!pres:jo@tzi.org!. 10 102 u E2U+msg!^.*$!mailto:jo@tzi.org!. Mapping to a Domain Name 33 Step 2: NAPTR for Transport Selection Type Order Preference Flags Services regexp Replacement Example: Secure preferred over, TCP over UDP Looking up <sip:jo@tzi.org> $ORIGIN tzi.org IN NAPTR IN NAPTR IN NAPTR 50 100 u D2T+S _sips._tcp.tzi.org 90 100 u D2T+ _sip._tcp.tzi.org 100 100 u D2U+ _sip._udp.tzi.org 34

Steps 3 and 4: SRV and A Resource Records Example: load balancing across three servers $ORIGIN _sip._tcp.tzi.org IN SRV IN SRV IN SRV 0 1 5060 damn.tzi.org 0 2 5060 rasen.tzi.org 0 4 50600 rasen.tzi.org Finally: lookup of A records for rasen.tzi.org Then send message to 134.102.218.67 35 Alternative Address Resolution Schemes Telephony Routing for IP (TRIP) [RFC 3219] BGP-4-based routing protocol to find gateways Hierarchical Routing See H.323 Gatekeeper Hierarchy across NRENs Static routing -based IP PBXes with statically configured prefix routing Peer-to-peer address resolution Relying on a different distributed data base than DNS 36

Example for Peer-to-Peer DNS P2P: Distributed Hash Table System Proxy 1 Proxy 2 UA 1 sip:ob@tzi.org UA 2 sip:jo@acm.org 37 Peer-to-Peer Core Functions Creating an Overlay of nodes (P2P peers) Mapping AoRs to a (set of) current user locations Distributed database (storing and retrieving data) Location service Avoid the need to run servers Providing a relayed transport for messages Further services Services also need to be identified and located in the overlay Examples NAT/firewall traversal (STUN servers, relays) Voicemail storage Conferencing support (media server, focus) Gateways (e.g., PSTN) 38

P2P: Draft Definitions Peer-to-peer network: an overlay P2P Overlay P2P Peers [Peer-ID] User Agent Gateway Proxy/redirect server Registrar Media relay P2P Resource (user) Resource ID Resource Name Resource Record Example: DHT Peer protocol Client protocol P2P UAs P2P Clients Neighbor Admitting peer Bootstrap peer Bootstrap server 39 P2P Protocols Peer Protocol: between peers for distributed system maintenance Enrolling a peer and inserting a peer into the overlay Enrolling a user/resource and inserting a user/resource record Retrieving a resource record about a user/resource Client Protocol: between clients and peers Strict subset of the peer protocol Enrolling and inserting a user/resource in the overlay Retrieving a resource record about a user/resource from the overlay Both protocols may or may not use as a basis for signaling May or may not pass through P2P peers (proxy vs. redirection) RTP for media streams May be reflected in media relays (RTP translators) 40

UAs as P2P Peers P2P: Distributed Hash Table System UA 1 sip:ob@tzi.org UA 2 sip:jo@acm.org 41 Proxies as P2P Peers, UAs a clients P2P: Distributed Hash Table System Proxy 1 Proxy 2 UA 1 sip:ob@tzi.org Two major issues: trust and reliability UA 2 sip:jo@acm.org 42

P2P NAT Traversal Thoughts Approach 1: Relying on Superpeers Superpeers are elected from the set of P2P peers Must be located in the public Internet (no NAT) Communications between NATed peers then via superpeers Approach 2: All peers are equal Create a partial mesh between peers Assuming there will always be some publicly reachable peers to start with Mesh to be organized in a structured manner (e.g., using some DHT) Route messages along the edges Assuming that all peers will be connected via at least one edge and are thus reachable Media sessions: use traditional mechanisms (STUN, ICE) 43 Some P2P Questions Selecting between Multiple Peers offering the Same Service And distinguishing services from users (do not want to lose the capability of forking) Visibility of Messages to Intermediate Peers Using C/S and P2P Simultaneously in a Single UA Clients, Peers, and Services Do all peers providing routing, storage, and all other services, or do only some peers provide certain services? What services, if any, must all peers provide? Do we need clients as a discrete class, or do UAs and/or low- function peers completely satisfy the requirements? How we can we describe the capacity of a peer for delivering a given service? Relationships of Domains to Overlays Can there be names from more than one domain in a single overlay? Can there be names from one domain in more than a single overlay? If so, how do we route Client/ requests to the right overlay? Can the domain of an AoR be in more than one overlay? Should we have a "default overlay" to search for peers in many domains? 44

P2P Client: A node participating in a P2P Overlay that is less capable than a P2P Peer in some way. The role of a P2P Client is still under debate, with a number of competing proposals, and some have suggested removing the concept entirely (see the discussion on this later Peer-to-peer in the document). network: If clients an overlay exist, then it has P2P been Peers [Peer-ID] agreed P2P that they Overlay do have the ability to add, modify, inspect, and delete information in the overlay. Note that the term client does not imply that this node is a UAC. Some have suggested that the word 'client' be changed to something else to avoid both this confusion and the implication of a client- server relationship. P2P: Draft Definitions User Agent Gateway Proxy/redirect server Registrar Media relay P2P Resource (user) Resource ID Resource Name Resource Record Example: DHT Peer protocol Client protocol P2P UAs P2P Clients Neighbor Admitting peer Bootstrap peer Bootstrap server 45