Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
About SIP   An introduction toTransactions & Dialogs       Jonas Borjesson                         @borjessonjonas
NOTE●   This version has been adapted to be viewed    without transitions.●   Go to aboutsip.com to download the original ...
re                                       ca                    SIP Messages            p●   SIP – Request/Response model  ...
Transactions●   SIP is a transactional protocol.●   Every request & response goes within a    transaction.●   Transactions...
Client Transactions●   Responsible for:    ●   Receiving request from the TU it and...    ●   Deliver requests reliably to...
Server Transactions●   Responsible for:    ●   Receive requests and pass them up the TU    ●   Filter out any retransmissi...
Transaction Relationships                           request                                              request          ...
Transaction Identifier  ●   Each transaction is uniquely identified by:      ●   the branch-id on the Via-header plus     ...
Transaction Lifecycle●    Slightly different depending on:      ●    Server or client transaction      ●    Invite or non-...
Dialogs ?     !          @borjessonjonas
Dialogs●   Dialogs are extremely important within SIP●   A dialog:    ●   represent a p2p relation between two SIP        ...
Dialog establishing methods●   Not all methods establish a dialog!●   The ones that do are:    ●   INVITE (RFC 3261)      ...
INVITE Scenario               INVITE sip:bob@aboutsip.com                       100 Tryingtransaction           180 Ringin...
Dialog Id●   A dialog is uniquely identified by:    ●   The Call-ID header    ●   The remote-tag    ●   The local-tag●   M...
Establishing a dialog●   UAC                                     ●   UAS                                                ● ...
Subsequent Requests●   Requests that goes within an established dialog    are called subsequent requests●   Subsequent req...
To Complicate things...●   There is such a thing as early-dialogs.●   One INVITE request can be forked and create    multi...
Tearing down a dialog●   Depends on the method    ●   BYE request for INVITE dialogs    ●   Un-subscribe request for SUBSC...
Summary          @borjessonjonas
Transactions●   Consists of 1 request and 0..* responses●   Two types of transactions:    ●   Invite transactions    ●   N...
Dialogs●   Consists of a sequence of transactions●   Not all methods establish dialogs.●   Represent a p2p relation betwee...
More presentations and material        at aboutsip.com           Thanks!                                  @borjessonjonas
Upcoming SlideShare
Loading in …5
×

Aboutsip - intro to transactions and dialogs

6,655 views

Published on

This section is an introduction to SIP transactions and dialogs and is suitable for those who either are working with SIP at a basic level, perhaps debugging SIP scenarios, or people that just want to know a little more. If you wish to become a SIP expert, knowing transactions and dialogs is a must. Even if your life goal isn't to become an expert in SIP, knowing what transactions and dialogs are will be tremendously helpful as soon as you do anything related to SIP, such as developing your first little application using something like JSR289 or similar.

This presentation will go over:
- What is a transaction.
- When does a transaction begin and when does it end.
- What is the relation between a dialog and a transaction.
- When is a dialog established.
- Why do we need dialogs?

Published in: Technology
  • DOWNLOAD FULL eBOOK INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc eBook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, CookeBOOK Crime, eeBOOK Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Aboutsip - intro to transactions and dialogs

  1. 1. About SIP An introduction toTransactions & Dialogs Jonas Borjesson @borjessonjonas
  2. 2. NOTE● This version has been adapted to be viewed without transitions.● Go to aboutsip.com to download the original version.● Also be sure to check out vimeo.com/aboutsip for any recorded presentations.● Follow @borjessonjonas to receive updates. @borjessonjonas
  3. 3. re ca SIP Messages p● SIP – Request/Response model ● UAC sends the request, UAS responds● Two types of responses ● Provisional (1xx) ● Final (2xx - 6xx) @borjessonjonas
  4. 4. Transactions● SIP is a transactional protocol.● Every request & response goes within a transaction.● Transactions are independent of each other.● SIP transaction: ● 1 request INVITE ● 0..* provisional responses 100 Trying 180 Ringing ● 0..* final responses 200 OK @borjessonjonas
  5. 5. Client Transactions● Responsible for: ● Receiving request from the TU it and... ● Deliver requests reliably to the server transaction ● Processing responses: – Filter out retransmissions – Filter out disallowed responses – Pass response to the TU ● Generating ACK for non 2xx final responses to INVITE transactions @borjessonjonas
  6. 6. Server Transactions● Responsible for: ● Receive requests and pass them up the TU ● Filter out any retransmissions ● Accepts responses from the TU and sends them. ● Absorbing the ACK request for non 2xx final responses on invite transactions @borjessonjonas
  7. 7. Transaction Relationships request request request server transaction server transaction server transaction client transaction client transaction client transaction response response responseUAC Outbound Inbound UAS Proxy Proxy @borjessonjonas
  8. 8. Transaction Identifier ● Each transaction is uniquely identified by: ● the branch-id on the Via-header plus ● the Cseq header ● 3261 branch-id starts with “z9hG4bK” INVITE sip:bob@aboutsip.com SIP/2.03 Via: SIP/2.0/UDP <ip_3>;branch=z9hG4bK-lkjsalkfjoijlkjlkj2 Via: SIP/2.0/UDP <ip_2>;branch=z9hG4bK-8jijlk-asfk-iji0kj1 Via: SIP/2.0/TCP <ip_1>;branch=z9hG4bK-llkowe-lkjko39d CSeq: 1 INVITE ... @borjessonjonas
  9. 9. Transaction Lifecycle● Slightly different depending on: ● Server or client transaction ● Invite or non-invite transaction ● Reliable vs. non-reliable transport (e.g. udp vs tcp)● To summarize them all* ● Starts when request is sent or received ● Final responses takes it to completed state ● Timer fires and moves it to terminated state. *You cant really group them together like this. Please view this information as a very generic summary of the life cycle of a SIP transaction. In reality, it is much more complicated. @borjessonjonas
  10. 10. Dialogs ? ! @borjessonjonas
  11. 11. Dialogs● Dialogs are extremely important within SIP● A dialog: ● represent a p2p relation between two SIP endpoints. ● exists for some time ● contains important routing information ● facilitates proper sequencing of messages ● consists of a sequence of transactions @borjessonjonas
  12. 12. Dialog establishing methods● Not all methods establish a dialog!● The ones that do are: ● INVITE (RFC 3261) – For establishing a dialog ● SUBSCRIBE (RFC 3265) – Creates a subscription. Used e.g. in presence scenarios ● REFER (RFC 3515) – Also a subscription but only for the refer event-package. Used e.g. for call transfer @borjessonjonas
  13. 13. INVITE Scenario INVITE sip:bob@aboutsip.com 100 Tryingtransaction 180 Ringing 200 OK ACKtransaction dialog BYEtransaction 200 OK @borjessonjonas
  14. 14. Dialog Id● A dialog is uniquely identified by: ● The Call-ID header ● The remote-tag ● The local-tag● My remote tag is your local tag and vice versa● Therefore, the dialog id is different for both ends (a very common thing SIP stacks mess up)SIP/2.0 200 OKTo: <sip:bob@aboutsip.com>;tag=e103a059-a9ca-4bc2-96d1-779636810bfeFrom: <sip:alice@aboutsip.com>;tag=f7389c89-ee9f-4802-af3e-636ce53883cbCall-ID: 9d8eccee-02f2-4952-a1bf-01fe1bae45d6CSeq: 2 INVITEContact: <sip:127.0.0.1:1557;transport=TCP> @borjessonjonas
  15. 15. Establishing a dialog● UAC ● UAS ● establishes the dialog ● creates the initial through a 2xx final request. response ● Fills in “half” of the ● fills in the other “half” of dialog-id. the dialog-id. INVITE sip:bob@aboutsip.com From: alice@aboutsip.com ;tag=kjlkjoilkjlkjasdflkj To: sip:bob@aboutsip.com Call-ID: lkjasdlfkjasldkfjla 200 OK From: alice@aboutsip.com;tag=kjlkjoilkjlkjasdflkj To: sip:bob@aboutsip.com;tag=abckjo219898df Call-ID: lkjasdlfkjasldkfjla @borjessonjonas
  16. 16. Subsequent Requests● Requests that goes within an established dialog are called subsequent requests● Subsequent requests follow the established route INVITE BYE @borjessonjonas
  17. 17. To Complicate things...● There is such a thing as early-dialogs.● One INVITE request can be forked and create multiple dialogs. e bil mo @ bob E V IT IN INVITE bob INV ITE bob @w or k @borjessonjonas
  18. 18. Tearing down a dialog● Depends on the method ● BYE request for INVITE dialogs ● Un-subscribe request for SUBSCRIBE dialogs ● REFER dialogs typically die when the reference to which the subscription is referring to goes away.● Of course, lots of corner cases that can lead to the destruction of a dialog... @borjessonjonas
  19. 19. Summary @borjessonjonas
  20. 20. Transactions● Consists of 1 request and 0..* responses● Two types of transactions: ● Invite transactions ● Non-Invite transactions● The branch-id on the Via uniquely identifies the transaction (plus the Cseq) @borjessonjonas
  21. 21. Dialogs● Consists of a sequence of transactions● Not all methods establish dialogs.● Represent a p2p relation between two SIP endpoints.● Contains routing information.● The dialog-id is different for the two parties. @borjessonjonas
  22. 22. More presentations and material at aboutsip.com Thanks! @borjessonjonas

×