2002-Siptrex

Download Report

Transcript 2002-Siptrex

Siptrex
Scalable IP Centrex
http://www.siptrex.net
Elias C. Efstathiou, [email protected]
Joint work with Rob Dupuis, Usman Arshad and
Alejandro Flores at Department of Computer
Science, University College London, 2001.
Siptrex.net Motivations
• VoIP maturity
– Codec standardisation
– Converged carriers
• Popularity of service outsourcing
– ASP model
– Centrex services
Siptrex.net Overview
• Platform for IP telephony services
– Distributed
– Scalable
– Fault tolerant
• Enabling technology
– Session Initiation Protocol (SIP)
– Java API for Integrated Networks (JAIN)
Siptrex.net Objectives
• To utilise commodity components
– Standard PCs running Windows / Linux
– Cheap commodity Ethernet infrastructure
• To design and implement a scalable architecture
–
–
–
–
Load balanced
Fault tolerant
“Hot Pluggable”
Versatile
Siptrex.net Objectives (cont’d)
• To provide a Java API for service
development
– Low level API for fine grained control
– Higher level API for rapid service deployment
• To develop telephony services
– Traditional
– Innovative
SIP – RFC 2543
• Text-based signaling protocol (it does not care about
things like RTP and it does lot more than just VoIP).
• Similar to HTTP. May also use UDP as transport.
• Defines the SIP URL notion:
– sip:[email protected]
– Elias Efstathiou <sip:[email protected]>
– Only one SIP URL per person? What about private
numbers?
• SIP Messages = SIP-Requests | SIP-Responses
JAIN SIP API
•
•
•
•
•
“Standard” Java Interfaces to SIP.
Protocol-level API.
SIP transaction-oriented (not call-oriented).
The Siptrex stack implemented most of it.
Lies between the stack and apps such as SIP servers
and UAs.
• Nice way to look at SIP. Streamlines things especially the headers.
• The Siptrex stack reuses the NIST SIP Parser
• Current JAIN SIP version has design flaws. Siptrex
solved several.
Siptrex.net Call API
•
•
•
•
•
•
•
•
•
Our own “higher-level” interface.
The Siptrex UA uses it.
Call-oriented API, similar to JTAPI and JAIN SIP Lite.
Lies between JAIN SIP API and the Siptrex User Agent.
Makes it easier to construct JAIN SIP Messages.
Makes it easier to use services.
Core notions: CallProvider, CallListener.
Defines a CallProvider state model and a call state model.
Siptrex Call API implementation uses JMF for RTP.
Layered Depiction of the
Siptrex.net Components
SIP User Agent (UA) Application
Siptrex
Call
API
UA
registration
Siptrex Call API implementation
JAIN SIP API
Siptrex JAIN SIP implementation
Siptrex Stack MessageCentre
Load
Balancing
Siptrex UdpNetworkCentre
Component
Siptrex.net 2001 PBX Services
• Siptrex.net 2001 supports:
–
–
–
–
Two-party calls (call, talk, hang-up)
Call waiting
Call hold/unhold
Presence information (through a buddy-list)
• Siptrex.net 2002 will support:
–
–
–
–
Call Transfer
Conference Calls
Call Pickup
Call Forwarding
Siptrex.net Issues
• Forking made the stack a bit more complicated.
• Load balancing affects basic operation?
• Hotmail-like road-warrior applet-usage
scenario unrealistic?
• Gateway to the PSTN:
– Use Cisco’s SIP Gateway?
– Support SIP-to-SIP intra-domain and inter-domain calls, support
PSTN-to-SIP calls, support SIP-to-PSTN calls.
• Logging and Billing.
• Scalability, Voice QoS and Security?
Thank You – Useful Links
• www.siptrex.net
• www.cs.columbia.edu/~hgs/sip/
• www.dynamicsoft.com
• www.ubiquity.net
• www.sipcenter.com
• www.sipforum.org
• www.vovida.org/vocal/