\documentclass[slidesonly,11pt,article]{seminar}
\newpagestyle{bare}{\tiny IP Telephony Evolution\hfil \thepage\ }{\tiny\hfil\today}
\usepackage{fancybox,slidesec,semcolor,times,graphics,pifont}
\usepackage{color}
\usepackage{pst-node}
\usepackage{columbia-slides}
\usepackage[latin1]{inputenc}
\articlemag{1}

\twoup\renewcommand{\slidetopmargin}{-0.2in}\slidestyle{bottom}

\renewcommand{\printlandscape}{\special{landscape}}
\newcommand{\thus}{\ding{224} }
\newcommand{\url}[1]{{\tt #1}}
\newcommand{\Curl}[1]{{\begin{center}\tt #1\end{center}}}
\newcommand{\literal}[1]{{\tt #1}}
\newcommand{\ps}[3]{\colorbox{white}{\centerline{\resizebox{#1}{#2}{\includegraphics{#3ps}}}}}
\newcommand{\chapter}[1]{\begin{center}\textcolor{red}{\Huge #1}\end{center}}
\newlength{\numwidth}
\newcommand{\X}{\settowidth{\numwidth}{0}\hspace*{\numwidth}}
% for two-up slides
\renewcommand{\slidestretch}{1.0}
\setlength{\parsep}{0pt}
\setlength{\itemsep}{0pt}
\newcommand{\header}[1]{\textsf{#1}}
\newcommand{\INVITE}{\textsf{INVITE}}
\newcommand{\ACK}{\textsf{ACK}}
\newcommand{\BYE}{\textsf{BYE}}
\newcommand{\CANCEL}{\textsf{CANCEL}}
\newcommand{\OPTIONS}{\textsf{OPTIONS}}
\newcommand{\REGISTER}{\textsf{REGISTER}}
\newcommand{\SUBSCRIBE}{\textsf{SUBSCRIBE}}
\newcommand{\NOTIFY}{\textsf{NOTIFY}}

\begin{document}

%-----------------------------------------------------------------------
\begin{slide}
\chapter{The Effect of Standards on the Growth of IP Telephony}
\begin{center}
Henning Schulzrinne\\
Dept. of Computer Science\\
Columbia University\\
New York, New York\\
{\sf schulzrinne@cs.columbia.edu}\\[2ex]
{\tiny IP Telephony Evolution -- Palm Springs, CA}\\
{\tiny January 30, 2001}\\[1ex]

\end{center}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Overview}
\begin{itemize}
\item Architectures: peer vs. master/slave
\item Master/slave control: MGCP and Megaco
\item Peer-to-peer signaling:
\begin{itemize}
\item H.323
\item SIP
\end{itemize}

\item Mapping between numbers and services: ENUM and TRIP
\item Event notification and presence
\item Programming multimedia services
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{IETF VoIP Protocol Architecture}
% bubbles
\ps{!}{0.9\textheight}{?proto?.e}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{IETF VoIP Protocol Architecture: Goals}
\begin{itemize}
\item Leverage content-neutrality of Internet \thus more than just voice and legacy services \thus video, shared applications, multi-party text chat
\item Imperceptible transition between communication modalities
\item Extensible to presence, instant messaging and event notification
\item Centrex lesson: user-controlled services
\item Allow services in end systems and network servers
\item Multiple levels of security: IPSec, TLS, application-layer
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Differences: Internet Telephony $\leftrightarrow$ POTS}
\begin{itemize}
\item separate control, transport (UDP) \thus no triangle routing
\item separate connectivity from resource availability
\item separate services from bit transport
\item datagram service \thus less bootstrapping
\item in-band signaling \thus higher speed
\item features network $\longrightarrow$
end system: distinctive ringing, caller id, speed dialing,
number translation, \ldots \thus scaling
\item features: intra-PBX = inter-LATA and general
\item protocols: user-network = network-network signaling
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{PSTN Legacies to Avoid}
\begin{itemize}
\item E.164 numbers -- might as well wear bar codes
\item tones and announcements
\item in-band signaling for features (DTMF)
\item systems with user-interface knowledge (12 keys, voice)
\item voice-only orientation (BICC, MGCP/Megaco)
\item integration of bit transport and services
\item service-specific billing \thus separate signaling \& billing
\item trusted networks without crypto
\end{itemize}
\thus confine PSTN knowledge to edge of network
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Invisible Internet Telephony}
``VoIP'' technology will appear in
\begin{itemize}
\item Internet appliances
\item home security cameras, web cams
\item 3G mobile terminals
\item fire alarms and building sensors
\item chat/IM tools
\item interactive multiplayer games
\item 3D worlds: proximity triggers call
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Carrier and Enterprise VoIP}
Traditionally,
\begin{itemize}
\item separate signaling: ISDN, CAS vs. ISUP
\item service restrictions, e.g., CF inefficient
\end{itemize}
Now, largely the same:
\begin{itemize}
\item hosted (``ASP''), run own servers or combinations
\item carrier: multiple domains per server
\item if not outsourced, TRIP for gateway selection
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Peer-to-Peer Architecture}
\begin{itemize}
\item ``IP telephones'', gateways, PCs with software = IP hosts
\item {\em may} use servers (H.323 gatekeepers, SIP proxy servers)
\item end system fully state-aware
\item protocols for call setup: H.323 or SIP
\item more flexible user interface
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Implementing Services}
\begin{center}
\begin{tabular}{lcc}
                                & end system & server\\
\hline
caller id                       & x          & --\\
call forwarding, follow me      & x          & x\\
three-way calling               & x          & --\\  
distinctive ringing             & x          & --\\
*69                             & x          & ?\\
no solicitation                 & x          & x\\
do not disturb                  & x          & x\\
call curfew                     & ?          & x\\
\end{tabular}
\end{center}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Master-Slave Architecture}
\begin{itemize}
\item master-slave: MGC controls one or more gateways
\item allows splitting of signaling and media functionality
\item ``please send audio from circuit 42 to 10.1.2.3''
\item uses MGCP (implemented) or Megaco/H.248 (standardized, but just
beginning to be implemented)
\item gateway can be residential 
\item basis of PacketCable NCS (network control system) architecture
\item service creation similar to digital PBX or switch
\item $\longrightarrow$ can charge for caller id, call waiting
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{MGCP Architecture}
\ps{\textwidth}{!}{mg_arch.e}
\begin{itemize}
\item for all but small system, need peer-to-peer!
\item MGCP system can call SIP or H.323 end system
\item all use RTP to transfer data
\end{itemize}
\end{slide}

%------------------------------------------------------------------------
\begin{slide}
\slideheading{SIP 101}
\begin{itemize}
\item SIP = signaling protocol for establishing
sessions/calls/conferences/\ldots
\item session = audio, video, game, chat, \ldots -- described by SDP
carried in SIP message
\end{itemize}
\begin{enumerate}
\item called server may map name to {\em user@host}
\item callee accepts, rejects, forward ($\rightarrow$ new address)
\item if new address, go to step 1
\item if accept, caller confirms
\item \ldots conversation \ldots
\item caller or callee sends {\sf BYE} 
\end{enumerate}
\end{slide}

%------------------------------------------------------------------------
\begin{slide}
\slideheading{SIP Operation in Proxy Mode}
\ps{\textwidth}{!}{proxy-big.e}
\end{slide}

%------------------------------------------------------------------------
\begin{slide}
\slideheading{SIP Operation in Redirect Mode}
\ps{!}{0.9\textheight}{redirect-big.e}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{SIP Personal Mobility}
\ps{\textwidth}{!}{sip_personal.e}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{More SIP Internet Telephony Services}
\begin{itemize}
\item camp-on without holding a line
\item short message service (``instant messaging'')
\item schedule call into the future
\item call with expiration date
\item add/remove parties to/from call \thus mesh
\item ``buddy lists''
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Internet Telephony -- as Part of Internet}
\begin{itemize}
\item universal identifier: email address = SIP address = IM address
\item SIP URLs in web pages
\item forward to email, web page, chat session, \ldots
\item include web page in invitation response (``web IVR'')
\item third-party control of calls via scripts,
\item include vCard, photo URL in invitation
\item user-programmable services: CGI (RFC 3050), CPL, servlets
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{SIP Status and Issues}
\begin{itemize}
\item standard since early 1999, editorial revision in progress
\item six bake-offs since 1999 for interoperability testing, about 60
companies attending
\item work in progress:
\begin{small}
\begin{itemize}
\item interaction with resource reservation
\item caller preferences (``no mobile phones, please'')
\item interoperation with ISUP (``SIP-T'')
\item call transfer and third-party control
\item conferencing: central server, end system, full mesh
\item server benchmarking and scaling
\end{itemize}
\end{small}
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{SIP -- H.323 Comparison}
\begin{center}
\begin{tabular}{lll}
                   & H.323 & SIP\\
\hline
Architecture       & stack & element\\
Conference control & yes   & no\\
Protocol           & mostly TCP   & mostly UDP\\
Encoding           & ASN.1, Q.931 & HTTPish\\
Emphasis           & telephony & multimedia, multicast\\
Address            & flat alias, E.164 & SIP, E.164 URLs\\
\end{tabular}
\end{center}
Both SIP and H.323 are evolving: SIP additions, H.323v2 implements some
SIP features.
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{A Signaling Protocol Prediction}
\begin{itemize}
\item H.323 continues to be used for simple gateways, conferencing systems
\item most large vendors produce both
\item IP ``PBXs'' (IP phones) primarily SIP
\item SIP as core signaling protocol for 3G networks
\item less use of MGCP/Megaco, except for very large gateways
\item BICC, SCTP only for legacy-burdened carriers
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Legacy Signaling Transport}
\begin{itemize}
\item Signaling Control Transport Protocol (SCTP)
\item like TCP, but with enhancements for out-of-order delivery
and multiple end points \thus generally useful (e.g., can carry SIP)
\item primarily useful for ISUP transport over IP
\item does \emph{not} mean use of ISUP for setting up VoIP sessions
\item ``SIP in the middle'': carry ISUP in message body
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{ENUM: Mapping E.164 Numbers to URLs}
Map single E.164 number to one or more URLs (e.g., SIP, mailto, H.323)
\begin{itemize}
\item transition from E.164 numbers to SIP URLs
\item voice mail drop address
\item number portability implementation
\end{itemize}
\ps{\textwidth}{0.6\textheight}{sip_from_tel.e}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Mapping E.164 Numbers to URLs}
ENUM {\em not} suited for finding gateways:
\begin{itemize}
\item would need entry for every number
\item single mapping only
\item no ability to convey parameters
\end{itemize}
Problems to be solved:
\begin{itemize}?
\item Who manages country-level domains? Blocks of numbers?
\item Who ``owns'' a number - customer or carrier?
\item ``Slamming'' of services
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Determining the Best VoIP Gateway}
Every gateway can reach almost any E.164 address \thus pick closest,
cheapest, preferred signaling, \ldots
\ps{!}{0.7\textheight}{glp.eps}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Example: Columbia CS Phone System}
Expand existing PBX via IP phones, with transparent connectivity
\ps{!}{0.7\textheight}{sip_columbia.e}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{The Largest Signaling Network Does Not Run SS7}
\begin{itemize}
\item AT\&T: 280 million calls a day
\item AOL: 110 million emails/day, total about 18 billion/day
\item total $>$ 1 billion instant messages/day (AOL: 500 million)
\item telephony signaling $\approx$ IM, presence
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Commonalities Between Signaling and Events}
\begin{itemize}
\item presence is just a special case of an event: ``Alice logged in''
$\approx$ ``house temperature dropped below 50 deg.''
\item need to locate mobile end points (for notifications)
\item may need to find several different destinations
\item same addressing for users
\item presence often precursor to calls
\item may replace call back and call waiting
\item likely to be found in same devices
\item events already in VoIP: message alert, call events, conf. joins
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{SIP as a Presence \& Event Platform}
\begin{itemize}
\item minimal SIP extension: {\SUBSCRIBE} to request notifcations, {\NOTIFY}
when event occurs
\item also, {\MESSAGE} for IM, sessions for multi-party chats
\item transition to true ``chat'' (and video)
\item services such as reaching mobile phone while in meeting
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Events: SIP for Appliances}
\ps{\textwidth}{!}{sip_appliance.e}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Programming Internet Multimedia Services}
Primarily, creation, forwarding, proxying, rejection of calls

\begin{description}
\item[APIs (Parlay, JAIN):] protocol-neutral (SIP, H.323, ISUP), 
but may be least common denominator

\item[SIP CGI:] use Perl and other scripting languages; easy to learn

\item[Servlets:] Java only; faster than cgi; limited functionality

\item[CPL:] = XML-based language for \emph{user} service creation; portable
across providers, but not all services
\end{description}
\begin{itemize}
\item Protocol-neutral: Parlay, JAIN, CPL
\item Call creation: Parlay, JAIN
\item VoiceXML is for voice-service creation \emph{after} call setup
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{Conclusion}
\begin{itemize}
\item basic IETF-based architecture in place
\item SIP as foundation for services
\item extensions for mobility, emergency services, \ldots in progress
\item first (and last?) chance to recover from 120 years of legacy
\item avoid replication of PSTN on packets
\item most VoIP applications won't look like telephones
\item range of engagement and asynchronicity, from call to IM to email
\item challenge of mobile services
\end{itemize}
\end{slide}

%-----------------------------------------------------------------------
\begin{slide}
\slideheading{For more information\ldots}
\begin{description}
\item[SIP:]  {\sf http://www.cs.columbia.edu/sip}

\item[RTP:]  {\sf http://www.cs.columbia.edu/\~{}hgs/rtp}

\item[Papers:] {\sf http://www.cs.columbia.edu/IRT}

\end{description}
\end{slide}

\end{document}

\end{document}
