JAIN-SIP_架构简介
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Brian O’Neill (bone@alumni.brown.edu)
A History Lesson
Protocol lineage: IP begat network. Networks begat TCP. TCP begat the internet. The internet begat HTTP. HTTP begat the web, which begat…
Documentations
already written Examples of use are plentiful
Brian O’Neill (bone@alumni.brown.edu)
The Goals
The Java-standard interface to a SIP signaling stack.
States: Early, Confirmed, Completed,Terminated
Brian O’Neill (bone@alumni.brown.edu)
The Life-Cycle of a Transaction
பைடு நூலகம்
Client Transactions
INVITE Transaction
Brian O’Neill (bone@alumni.brown.edu)
Dialogs
A dialog is a peer-to-peer SIP relationship between two UAs that persists for some time. A dialog is established by SIP messages, such as a 2xx response to an INVITE request.
JAIN
Brian O’Neill (bone@alumni.brown.edu)
The SIP Impetus
SIP is powerful enough that:
The
computer savvy sixteen year old down the street can create a phone company in his parent’s basement on an old 486. And JAIN SIP enables him or her to use Java to do it.
Content:
Brian O’Neill (bone@alumni.brown.edu)
Anatomy of a SIP Response
Status Code Status Line: Headers:
SIP/2.0 200 OK Via: SIP/2.0/UDP foo.com;branch=z9hG4bKnashds8 To: Bob <sip:bob@foo.com>;tag=a6c85cf From: Alice <sip:alice@bar.org.>;tag=6987 Call-ID: a84b4c76e666710 Cseq: 314159 INVITE Contact: <sip:bob@192.168.0.4> Content-Type: application/sdp Content-Length: 131 ... SDP Information ...
JAIN SIP can be utilized in a user agent, proxy, registrar
or imbedded into a service container.
Brian O’Neill (bone@alumni.brown.edu)
RFC Driven
Embodiment of the necessary entities. A definition of the important events in SIP. An event model providing application access to those events. A “customizable” level of control over the entities and their life-cycles.
Definitions:
SIP
is the Session Initiation Protocol established by the IETF to create a new asynchronous, extensible communications protocol. SIP is the standardized Java interface to the Session Initiation Protocol for desktop and server applications.
Designed for developers who require powerful and
complete access to the SIP protocol, though simple enough that your grandmother can use it to build the robust voicemail server she has always wanted.
Content:
Brian O’Neill (bone@alumni.brown.edu)
The Separation of Signaling and Media
SIP is the signaling component of the interaction, but does *not* get involved in the actual media.
Instant Messaging Buddy-Lists VoIP
Brian O’Neill (bone@alumni.brown.edu)
SIP Roles
User Agents and their information
Brian O’Neill (bone@alumni.brown.edu)
Brian O’Neill (bone@alumni.brown.edu)
Presence Models
Edge vs. Aggregate
“Follow
me” Escalation
Brian O’Neill (bone@alumni.brown.edu)
Instant Messaging & Registration
The Model
The Impact
The Implementation
Brian O’Neill (bone@alumni.brown.edu)
Introduction
Goal:
A
conversational understanding of SIP and a thorough working knowledge of the JAIN SIP API v1.1.
foo.com Application bob@foo.com process JAIN SIP API SIP Stack Impl
bar.com Application process JAIN SIP API
alice@bar.com
Java Media Framework (??)
SIP Stack Impl
Brian O’Neill (bone@alumni.brown.edu)
Non-INVITE Transaction
The Life-Cycle of a Transaction
Server Transactions
INVITE Transaction
Brian O’Neill (bone@alumni.brown.edu)
Using JAIN SIP
Suggests the proper architecture and level of abstraction for applications. Vendor independent application development. Third party customization with minimal support.
Standardizes the interface to the stack. (Customizable components) Standardizes message, transaction, and dialog interfaces. Standardizes events and event semantics. Application portability - verified via the TCK.
This
is the job of the Session Description Protocol (SDP) What about Java support for the media? JMF?
INVITE / 200 / ACK
INVITE / 200 / ACK
INVITE / 200 / ACK
Interfacing Java to SIP
The story of the JAIN SIP API
Brian O’Neill Technical Architect, Gestalt LLC bone@alumni.brown.edu mobile: 215.588.6024
The Plan
Non-INVITE Transaction
Anatomy of a SIP Message: Sniff, Sniff
Method Request Line: Headers: Request URI
INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bKnashds7 Max-Forwards: 70 To: Bob <sip:bob@biloxi.com> From: Alice <sip:alice@biloxi.com>;tag=456248 Call-ID: 843817637684230@998sdasdh09 Cseq: 1826 REGISTER Contact: <sip:bob@192.168.0.4> Expires: 7200 Content-Length: 32 ...message payload...
Brian O’Neill (bone@alumni.brown.edu)
Invitations
Brian O’Neill (bone@alumni.brown.edu)
Presence
Brian O’Neill (bone@alumni.brown.edu)
JAIN SIP API
Brian O’Neill (bone@alumni.brown.edu)
WARNING: SIP is just a protocol, nothing more and nothing less.
Brian O’Neill (bone@alumni.brown.edu)
Network Architecture
Think, “E-mail meets I.M.”
Inter-Enterprise
Goodspeed: Well, I'm one of those fortunate people who like my job, Sir. Got my first chemistry set when I was seven, blew my eyebrows off, we never saw the cat again, been into it ever since.
Application Architecture
Applications receive events, and send messages.
Underneath the covers, the SIP stack implementation manages the processing and life-cycles of the requests, responses, transactions, and dialogs. It also manages the mappings between them.