Delivering Serverless IP Telephonyto the Enterprise
Simon BrydenVP Engineering, Popular Telephony
What's wrong with servers?
• They're expensiveo High start-up costo Typically high maintenance/support overhead
• Initial learning curveo Blocking factor for small businesses
• Single point of failureo loss of server impacts all clients
A Tempting Proposition...
User Manual
Step 1: Unpack phones
Step 2: Plug them in
Step 3: Start calling
Serverless Architecture
Serverless Challenges
• How to route calls?• Call state tracking• Storage
o address bookso voicemailso call registers
• Feature implementation• System administration
Data Storage
• Storage on local terminalso ties terminals to peopleo use broadcast-based retrieval
• Distributed storageo access from any terminalo resilient to loss of terminalso DHT-based storage/retrieval
Distributed Hash Tables
• Used to map a data object to one or more nodes
• Each node has small number of peers• Peers forward requests to their peers
• Typically order log2(n) hops to retrieve data
• Extremely scalable
Distributed Hash Tables
• At startup, new peer needs to find existing peers
• Several mechanismso IP multicasto Registration pointo Preconfigured rangeso Cached lists
Data Storage - detailskey=”login:100”
data=”sip:[email protected]”
key hash=>node 7
Node 1
Node 7
Node 8
Node 9
Node 6
Node 5
Node 4
Node 3
Node 2
Data Storage – conceptual view
key=”login:100”data=”sip:[email protected]
Distributed Intelligence
• Terminals must understand features• Call control more complex
o compared to standard IP phone
Example Call Flow
login:100sip:[email protected]
login:101sip:[email protected]
Request “login:101”
Dial “101”
100
101
Feature Example: Pickup
login:100sip:[email protected]
login:101sip:[email protected]
ring:sales101
101
100
Feature Example: Pickup
login:100sip:[email protected]
login:101sip:[email protected]
ring:sales100:101
Request “ring:sales”
Pickup
100
101
103
“100:101”
Feature Example: Pickup
login:100sip:[email protected]
login:101sip:[email protected]
ring:sales100:101
Redirect to 103
login:103sip:[email protected]
Deletering:sales
100
103
101
Feature Example: Pickup
login:100sip:[email protected]
login:101sip:[email protected]
login:103sip:[email protected]
101
100
103
Feature Example: Pickup
login:100sip:[email protected]
login:101sip:[email protected] login:103
100
101
103
Feature Example: Park
login:100sip:[email protected]
login:101sip:[email protected] login:103
park:385100
Park ID = 385
Park
100
101
103
Feature Example: Park
login:100sip:[email protected]
login:101sip:[email protected] login:103
park:385100
Call Parked
100
101
103
Feature Example: Park
login:100sip:[email protected]
login:101sip:[email protected] login:103
park:385100
Call Parked
Request “park:385”
Unpark 385
100
101
103
100
Feature Example: Park
login:100sip:[email protected]
login:101sip:[email protected] login:103
park:385100
Call Parked
Reconnect with 103Delete “park:385”
100
101
103
Feature Example: Park
login:100sip:[email protected]
login:101sip:[email protected] login:103
100
101
103
Roadblocks
• DHT implementation very complexo Need 100% guarantee of data locationo Need strong reliabilityo Limited storage on nodeso Limited performance nodes
• New features = new softwareo Need a good auto-update feature
Summary
• P2P telephony is the future• High-interest topic
o Vendors already shipping productso IETF involvemento Some open source interest
• Natural evolution
Thank You
Top Related