/[resiprocate]/main/resip/dum/doc/dum-clientinvite-state.dot
ViewVC logotype

Contents of /main/resip/dum/doc/dum-clientinvite-state.dot

Parent Directory Parent Directory | Revision Log Revision Log


Revision 8520 - (show annotations) (download)
Mon Jun 22 21:20:02 2009 UTC (10 years, 5 months ago) by sgodin
File MIME type: text/plain
File size: 11257 byte(s)
-ClientInviteSession changes to react appropriately to reception of UPDATE messages before connected state
1 // names start with cap are states
2 // names start with app:: are appliction handlers
3 // names start with dum:: are dum interface to application
4 // names start with lower case are actions
5 // names start with on are events
6
7 // Note: not all Assert transitions are shown here
8 digraph UAC {
9 rankdir=LR;
10 node [shape = box];
11
12 // create a timer in the DialogSet when 1xx is received including 100
13 Start -> Early [ label = "on1xx/app::onNewSession,timer::StaleCall,app::onProvisional" ];
14 Start -> Early [ label = "on1xx-early/app::onNewSession,timer::StaleCall,app::onProvisional,app::onEarlyMedia" ];
15 Start -> EarlyWithOffer [ label = "on1xx-offer/app::onNewSession,timer::StaleCall,app::onProvisional,app::onOffer" ];
16 Start -> EarlyWithAnswer [ label = "on1xx-answer/app::onNewSession,timer::StaleCall,app::onProvisional,app::onAnswer,send::PRACK" ];
17 Start -> Answered [ label = "on2xx-offer/app::onNewSession,app::onOffer,app::onConnected" ];
18 Start -> Connected [ label = "on2xx-answer/send::ACK,app::onNewSession,app::onAnswer,app::onConnected" ];
19 Start -> Terminated [ label = "on2xx/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];
20 Start -> Terminated [ label = "onInviteFailure|onGeneralFailure/app::onFailure,app::onTerminated,dum::destroy" ];
21 Start -> Terminated [ label = "onRedirect/app::onRedirected" ]; // Handled by RedirectManager and DialogSet
22 Start -> Assert [ label = "dum::cancel/assert" ];
23
24 Early -> Early [ label = "on1xx/timer::StaleCall,app::onProvisional,send::PRACK" ];
25 Early -> Early [ label = "on1xx-early/timer::StaleCall,app::onProvisional,app::onEarlyMedia" ];
26 Early -> EarlyWithOffer [ label = "on1xx-offer/timer::StaleCall,app::onProvisional,app::onOffer" ];
27 Early -> EarlyWithAnswer [ label = "on1xx-answer/timer::StaleCall,app::onProvisional,app::onAnswer,send::PRACK" ];
28 Early -> Answered [ label = "on2xx-offer/app::onOffer,app::onConnected" ];
29 Early -> Connected [ label = "on2xx-answer/send::ACK,app::onAnswer,app::onConnected" ];
30 Early -> Terminated [ label = "on2xx/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];
31 Early -> Terminated [ label = "onInviteFailure|onGeneralFailure/app::onFailure,app::onTerminated,dum::destroy" ];
32 Early -> Canceled [ label = "dum::cancel/timer::cancel" ];
33 Early -> Terminated [ label = "onRedirect/app::onRedirected" ]; // Handled by RedirectManager and DialogSet
34 Early -> Assert [ label = "dum::provideAnswer/assert(0)" ];
35 Early -> Assert [ label = "dum::provideOffer/assert(0)" ];
36 Early -> Early [ label = "onUpdate-offer/outstanding-offer,send::500" ];
37 Early -> ReceivedUpdateEarly [ label = "onUpdate-offer/no-outstanding-offer,app::onOffer" ];
38 Early -> Early [ label = "onUpdate/send::200" ]; // callback?
39 Early -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
40
41
42 EarlyWithOffer -> EarlyWithOffer [ label = "on1xx/timer::StaleCall,app::onProvisional,send::PRACK" ];
43 // Ken's note: Rohan says, the first 180 an UAS is to respond to an INVITE w/offer, must contain an answer.
44 EarlyWithOffer -> SentAnswer [ label = "dum::provideAnswer/send::PRACK-answer" ];
45 EarlyWithOffer -> Terminated [ label = "on2xx|on2xx-answer/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];
46 EarlyWithOffer -> Terminated [ label = "onRedirect/app::onRedirected" ]; // Handled by RedirectManager and DialogSet
47 EarlyWithOffer -> Terminated [ label = "onInviteFailure|onGeneralFailure/app::onFailure,app::onTerminated,dum::destroy" ];
48 EarlyWithOffer -> Canceled [ label = "dum::cancel/timer::cancel" ];
49 EarlyWithOffer -> Assert [ label = "dum::provideOffer/assert(0)" ];
50 EarlyWithOffer -> EarlyWithOffer [ label = "onUpdate-offer/send::500" ];
51 EarlyWithOffer -> EarlyWithOffer [ label = "onUpdate/send::200" ]; // callback?
52 EarlyWithOffer -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
53
54 EarlyWithAnswer -> EarlyWithAnswer [ label = "on1xx/timer::StaleCall,app::onProvisional,send::PRACK" ];
55 EarlyWithAnswer -> Connected [ label = "on2xx/send::ACK,app::onConnected" ];
56 EarlyWithAnswer -> Terminated [ label = "on2XX-sdp/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];
57 EarlyWithAnswer -> ReceivedUpdateEarly [ label = "onUpdate-offer/app::onOffer" ];
58 EarlyWithAnswer -> EarlyWithAnswer [ label = "onUpdate/send::200" ]; // callback?
59 EarlyWithAnswer -> SentUpdateEarly [ label = "dum::provideOffer/send::UPDATE" ]; // Can I send the UPDATE before I get 200/PRACK
60 EarlyWithAnswer -> Terminated [ label = "onRedirect/app::onRedirected" ];
61 EarlyWithAnswer -> Terminated [ label = "onInviteFailure|onGeneralFailure/app::onFailure,app::onTerminated,dum::destroy" ];
62 EarlyWithAnswer -> Canceled [ label = "dum::cancel/timer::cancel" ];
63 EarlyWithAnswer -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
64 EarlyWithAnswer -> Assert [ label = "dum::provideAnswer/assert(0)" ];
65
66 SentUpdateEarly -> EarlyWithAnswer [ label = "on200U/app::onAnswer" ];
67 SentUpdateEarly -> SentUpdateEarly [ label = "onUpdate-offer/send::491" ];
68 SentUpdateEarly -> SentUpdateEarly [ label = "onUpdate/send::200" ]; // callback?
69 SentUpdateEarly -> SentUpdateEarlyGlare [ label = "on491"/timer::491" ];
70 SentUpdateEarly -> SentUpdate [ label = "on2xxI/send::ACK" ]; //from connected state machine
71 SentUpdateEarly -> Canceled [ label = "dum::cancel/timer::cancel" ];
72 SentUpdateEarly -> Assert [ label = "dum::provideAnswer/assert(0)" ];
73 SentUpdateEarly -> Assert [ label = "dum::provideOffer/assert(0)" ];
74 SentUpdateEarly -> Terminated [ label = "onRedirect/app::onRedirected" ];
75 SendUpdateEarly -> Terminated [ label = "onInviteFailure|onGeneralFailure/app::onFailure,app::onTerminated,dum::destroy" ];
76 SentUpdateEarly -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
77
78 SentUpdateEarlyGlare -> SentUpdateEarly [ label = "onTimer491/resend::UPDATE" ];
79 SentUpdateEarlyGlare -> ReceivedUpdateEarly [ label = "onUPDATE/app::onOfferRejected,app::onOffer" ];
80 SentUpdateEarlyGlare -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
81 SentUpdateEarlyGlare -> SentUpdateGlare [ label = "on2xxI/send::ACK"];//from connected state machine
82
83 ReceivedUpdateEarly -> Terminated [ label = "onRedirect/app::onRedirected" ];
84 ReceivedUpdateEarly -> EarlyWithAnswer [ label = "dum::provideAnswer/send::200U-answer" ];
85 ReceivedUpdateEarly -> EarlyWithAnswer [ label = "dum::reject/send::488U" ];
86 ReceivedUpdateEarly -> Canceled [ label = "dum::cancel/timer::cancel" ];
87 ReceivedUpdateEarly -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
88 ReceivedUpdateEarly -> Assert [ label = "dum::provideAnswer/assert(0)" ];
89 ReceivedUpdateEarly -> Assert [ label = "dum::provideOffer/assert(0)" ];
90
91 Answered -> Connected [ label = "dum::provideAnswer/send::ACK-answer,app::onConnected" ];
92 Answered -> Assert [ label = "dum::provideOffer/assert(0)" ];
93 Answered -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
94 Answered -> Assert [ label = "dum::cancel/assert" ];
95
96 SentAnswer -> EarlyWithAnswer [ label = "on200P" ];
97 SentAnswer -> Connected [ label = "on2xx/send::ACK,app::onConnected" ];
98 SentAnswer -> Terminated [ label = "on1xx-offer|on1xx-answer/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];
99 SentAnswer -> Terminated [ label = "on2xx-offer|on2xx-answer/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];
100 SentAnswer -> EarlyWithAnswer [ label = "on1xx/timer::StaleCall,app::onProvisional,send::PRACK" ];
101 SentAnswer -> Terminated [ label = "onRedirect/app::onRedirected" ]; // Handled by RedirectManager and DialogSet
102 SentAnswer -> Terminated [ label = "onInviteFailure|onGeneralFailure/app::onFailure,app::onTerminated,dum::destroy" ];
103 SentAnswer -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
104 SentAnswer -> QueuedUpdate [ label = "dum::provideOffer/queueOffer" ];
105 SentAnswer -> Canceled [ label = "dum::cancel/timer::cancel" ];
106 SentAnswer -> Assert [ label = "dum::provideAnswer/assert(0)" ];
107
108 QueuedUpdate -> SentUpdateEarly [ label = "on200P/UPDATE-queued" ];
109 QueuedUpdate -> SentUpdate [ label = "on200I/ACK,onConnected,send::UPDATE-queued" ];
110 QueuedUpdate -> Terminated [ label = "on1xx-offer|on1xx-answer/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];
111 QueuedUpdate -> Terminated [ label = "on2xx-offer|on2xx-answer/send::ACK,send::BYE,app::onFailure,app::onTerminated" ];
112 QueuedUpdate -> QueuedUpdate [ label = "on1xx/timer::StaleCall,app::onProvisional,send::PRACK" ];
113 QueuedUpdate -> Terminated [ label = "onRedirect/app::onRedirected" ];
114 QueuedUpdate -> Terminated [ label = "onInviteFailure|onGeneralFailure/app::onFailure,app::onTerminated,dum::destroy" ];
115 QueuedUpdate -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ];
116 QueuedUpdate -> Canceled [ label = "dum::cancel/timer::cancel" ];
117 QueuedUpdate -> Assert [ label = "dum::provideAnswer/assert(0)" ];
118 QueuedUpdate -> Assert [ label = "dum::provideOffer/assert(0)" ];
119
120 Canceled -> Terminated [ label = "onTimer/send::487,app::onTerminated" ];
121 Canceled -> Terminated [ label = "on2xx|on2xx-offer|on2xx-answer/send::ACK,send::BYE,app::onTerminated" ];
122 Canceled -> Terminated [ label = "onRedirect/app::onRedirected" ]; // Handled by RedirectManager and DialogSet
123 Canceled -> Terminated [ label = "onInviteFailure|onGeneralFailure/app::onFailure,app::onTerminated,dum::destroy" ];
124 Canceled -> Canceled [ label = "dum::cancel" ]; // No-op
125 Canceled -> Terminated [ label = "dum::end/send::BYE,app::onTerminated" ]; // !jf! possibly incorrect to always BYE in UAC_Cancelled
126 }

Properties

Name Value
svn:eol-style native
svn:mime-type text/plain

webmaster AT resiprocate DOT org
ViewVC Help
Powered by ViewVC 1.1.27