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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10695 - (show annotations) (download)
Fri Nov 22 23:12:34 2013 UTC (5 years, 11 months ago) by sgodin
File MIME type: text/plain
File size: 23224 byte(s)
-Merged from b-uasprack-20130904
  -added UAS Prack support to DUM!  Original implementation taken from b-uasprack-20091103
  -many changes, fixes and enhancements from original branch
  -MasterProfile setting setUasReliableProvisionalMode is used to enable
  -added mode called SupportedEssential where we will send reliable provisionals only if they
   are a provisional that is carrying an offer or answer  - required for 3GPP IMS flows 
  -added resubmit timer for reliable responses to ensure we send a reliable provisional at least 
   every 2.5 minutes  -new profile setting: set1xxRelResubmitTime to support this
  -updated state diagrams and added new PRACK flow diagrams to dum/doc directory (removed old diagrams)
  -fixed update glare handling for UAC prack 
  -added in support for UAC Prack to be able to send an offer in the first PRACK response 
  (must call provideOffer from onAnswer callback)
  -made a helper method on DialogUsageManager to set advertised capabilities 
  -fixed missing break in ClientInviteSession::dispatchReceivedUpdateEarly 
  

  
  
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 UAS {
9 rankdir=LR;
10 node [shape = box];
11
12 //////////////////////////////////////////
13 // UAS - offer in INVITE
14 Start -> Offer [ label = "onInvite-offer/app::onNewSession,app::onOffer" ];
15
16 Offer -> OfferProvidedAnswer [ label = "dum::provideAnswer/store::answer" ];
17 Offer -> EarlyOffer [ label = "dum::provisional/send::1xx,timer::1xx" ];
18 Offer -> Assert [ label = "dum::accept/assert" ];
19 Offer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
20 Offer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
21 Offer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
22 Offer -> Terminated [ label = "onCancel/app::onTerminated,send::200C,send::487I" ];
23 Offer -> Terminated [ label = "onBye/app::onTerminated,send::200B,send::487I" ];
24
25 OfferProvidedAnswer -> Accepted [ label = "dum::accept/send::2xx-answer,timer::2xx,timer::NoAck,app::onConnected" ];
26 OfferProvidedAnswer -> EarlyProvidedAnswer [ label = "dum::provisional/send::1xx,timer::1xx" ]; // include early-media
27 OfferProvidedAnswer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
28 OfferProvidedAnswer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
29 OfferProvidedAnswer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
30 OfferProvidedAnswer -> Terminated [ label = "onCancel/app::onTerminated,send::200C,send::487I" ];
31 OfferProvidedAnswer -> Terminated [ label = "onBye/app::onTerminated,send::200B,send::487I" ];
32
33 Accepted -> Connected [ label = "onACK" ];
34 Accepted -> Connected [ label = "onACK-answer" ]; // illegal - but accept anyway
35 Accepted -> Accepted [ label = "onCANCEL/send::200C" ];
36 Accepted -> Accepted [ label = "onTimer2xx/resend::2XXI" ];
37 Accepted -> Terminated [ label = "onTimerNoACK/app::onAckNotReceived(),app::onTerminated(GeneralFailure),send::BYE" ];
38 Accepted -> Terminated [ label = "onBye/app::onTerminated,send::200B" ];
39 Accepted -> WaitingToHangup [ label = "dum::end" ];
40 Accepted -> WaitingToOffer [ label = "dum::provideOffer/saveOffer" ];
41 Accepted -> WaitingToRequestOffer [ label = "dum::requestOffer/saveOffer" ];
42
43 WaitingToOffer -> SentUpdate [ label = "onACK,onAck-answer/send::UPDATE-offer" ]; // on Ack-answer is illegal - but accept anyway for interop
44 WaitingToOffer -> SentReinvite [ label = "onACK,onAck-answer/send::INVITE-offer" ]; // on Ack-answer is illegal - but accept anyway for interop
45 WaitingToOffer -> WaitingToOffer [ label = "onCANCEL/send::200C" ];
46 WaitingToOffer -> WaitingToOffer [ label = "onTimer2xx/resend::2XXI" ];
47 WaitingToOffer -> Terminated [ label = "onTimerNoACK/app::onAckNotReceived(),app::onTerminated(GeneralFailure),send::BYE" ];
48 WaitingToOffer -> Terminated [ label = "onBye/app::onTerminated,send::200B" ];
49 WaitingToOffer -> WaitingToHangup [ label = "dum::end" ];
50
51 WaitingToRequestOffer -> SentReinviteNoOffer [ label = "onACK/send::INVITE" ];
52 WaitingToRequestOffer -> SentReinviteNoOffer [ label = "onACK-answer/send::INVITE" ];
53 WaitingToRequestOffer -> WaitingToRequestOffer [ label = "onCANCEL/send::200C" ];
54 WaitingToRequestOffer -> WaitingToRequestOffer [ label = "onTimer2xx/resend::2XXI" ];
55 WaitingToRequestOffer -> Terminated [ label = "onTimerNoACK/app::onAckNotReceived(),app::onTerminated(GeneralFailure),send::BYE" ];
56 WaitingToRequestOffer -> Terminated [ label = "onBye/app::onTerminated,send::200B" ];
57 WaitingToRequestOffer -> WaitingToHangup [ label = "dum::end" ];
58
59 EarlyOffer -> EarlyOffer [ label = "onTimer1xx/resend::1xx" ];
60 EarlyOffer -> EarlyOffer [ label = "dum::provisional/send::1xx,timer::1xx" ];
61 EarlyOffer -> EarlyProvidedAnswer [ label = "dum::provideAnswer/store::answer" ];
62 EarlyOffer -> Assert [ label = "dum::accept/assert" ];
63 EarlyOffer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
64 EarlyOffer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
65 EarlyOffer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
66 EarlyOffer -> Terminated [ label = "onCancel/send::200C,send::487I" ];
67 EarlyOffer -> Terminated [ label = "onBye/app::onTerminated,send::200B,send::487I" ];
68
69 EarlyProvidedAnswer -> EarlyProvidedAnswer [ label = "dum::provisional/send::1xx,timer::1xx" ]; // include early-media
70 EarlyProvidedAnswer -> Accepted [ label = "dum::accept/send::2xx-answer,timer::2xx,timer::NoAck,app::onConnected" ];
71 EarlyProvidedAnswer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
72 EarlyProvidedAnswer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
73 EarlyProvidedAnswer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
74 EarlyProvidedAnswer -> Terminated [ label = "onCancel/app::onTerminated,send::200C,send::487I" ];
75 EarlyProvidedAnswer -> Terminated [ label = "onBye/app::onTerminated,send::200B,send::487I" ];
76 //////////////////////////////////////////
77
78
79 //////////////////////////////////////////
80 // UAS - no offer in INVITE
81 Start -> NoOffer [ label = "onInvite/app::onNewSession,app::onOfferRequired" ];
82
83 NoOffer -> ProvidedOffer [ label = "dum::provideOffer/store::offer" ];
84 NoOffer -> EarlyNoOffer [ label = "dum::provisional/send::1xx,timer::1xx" ]; // include early-media
85 NoOffer -> Assert [ label = "dum::accept/assert" ];
86 NoOffer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
87 NoOffer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
88 NoOffer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
89 NoOffer -> Terminated [ label = "onCancel/app::onTerminated,send::200C,send::487I,dum::destroy" ];
90 NoOffer -> Terminated [ label = "onBye/app::onTerminated,send::200B,send::487I,dum::destroy" ];
91
92 ProvidedOffer -> EarlyProvidedOffer [ label = "dum::provisional/send::1xx-early,timer::1xx" ];
93 ProvidedOffer -> AcceptedWaitingAnswer [ label = "dum::accept/send::2XXI-offer,timer::2xx,timer::NoAck,app::onConnected" ];
94 ProvidedOffer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
95 ProvidedOffer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
96 ProvidedOffer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
97 ProvidedOffer -> Terminated [ label = "onCancel/app::onTerminated,send::200C,send::487I,dum::destroy" ];
98 ProvidedOffer -> Terminated [ label = "onBye/app::onTerminated,send::200B,send::487I,dum::destroy" ];
99
100 EarlyNoOffer -> EarlyNoOffer [ label = "onTimer1xx/resend::1xx" ];
101 EarlyNoOffer -> EarlyNoOffer [ label = "dum::provisional/send::1xx,timer::1xx" ];
102 EarlyNoOffer -> EarlyProvidedOffer [ label = "dum::provideOffer/store::offer" ];
103 EarlyNoOffer -> Assert [ label = "dum::accept/assert" ];
104 EarlyNoOffer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
105 EarlyNoOffer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
106 EarlyNoOffer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
107 EarlyNoOffer -> Terminated [ label = "onCancel/app::onTerminated,send::200C,send::487I,dum::destroy" ];
108 EarlyNoOffer -> Terminated [ label = "onBye/app::onTerminated,send::200B,send::487I,dum::destroy" ];
109
110 EarlyProvidedOffer -> EarlyProvidedOffer [ label = "dum::provisional/send::1xx-early,timer::1xx" ];
111 EarlyProvidedOffer -> AcceptedWaitingAnswer [ label = "dum::accept/send::2XXI-offer,timer::2xx,timer::NoAck,app::onConnected" ];
112 EarlyProvidedOffer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
113 EarlyProvidedOffer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
114 EarlyProvidedOffer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
115 EarlyProvidedOffer -> Terminated [ label = "onCancel/app::onTerminated,send::200C,send::487I,dum::destroy" ];
116 EarlyProvidedOffer -> Terminated [ label = "app::onTerminated,onBye/send::200B,send::487I,dum::destroy" ];
117
118 AcceptedWaitingAnswer -> Connected [ label = "onACK-answer/onAnswer" ];
119 AcceptedWaitingAnswer -> Terminated [ label = "onACK/onAnswer/send::BYE" ];
120 AcceptedWaitingAnswer -> AcceptedWaitingAnswer [ label = "onCANCEL/send::200C" ];
121 AcceptedWaitingAnswer -> AcceptedWaitingAnswer [ label = "onPRACK/send::2XXP" ];
122 AcceptedWaitingAnswer -> Terminated [ label = "onTimer2xx/resend::2XXI" ]; // !jf! destroy?
123 AcceptedWaitingAnswer -> Terminated [ label = "onTimerNoACK/send::BYE" ];
124 AcceptedWaitingAnswer -> WaitingToHangup [ label = "dum::end" ];
125 // reject is not allowed once accepted
126
127 WaitingToHangup -> Terminated [ label = "onACK/send::BYE" ];
128 WaitingToHangup -> Terminated [ label = "onTimerNoACK/send::BYE" ];
129
130
131 //////////////////////////////////////////
132
133
134 Start -> OfferReliable [ label = "onInvite-offer-rel/app::onNewSession,app::onOffer" ];
135 Start -> NoOfferReliable [ label = "onInvite-rel/app::onNewSession,app::onOfferRequired" ];
136
137 OfferReliable -> OfferReliableProvidedAnswer [ label = "dum::provideAnswer/store answer" ];
138 OfferReliable -> NoAnswerReliableWaitingPrack [ label = "dum::provisional-rel/send::1xx,timer:1xxRel" ]
139 OfferReliable -> OfferReliable [ label = "dum::provisional/send::1xx,timer:1xx" ]
140 OfferReliable -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
141 OfferReliable -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
142 OfferReliable -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
143 OfferReliable -> Terminated [ label = "onCancel/send::200C,send::487I,app::onTerminated,dum::destroy" ];
144
145 OfferReliableProvidedAnswer -> FirstSentAnswerReliable [ label = "dum::provisional-rel/send::1xx-answer,timer::1xxRel" ];
146 OfferReliableProvidedAnswer -> OfferReliableProvidedAnswer [ label = "dum::provisional/send::1xx,timer::1xx" ];
147 OfferReliableProvidedAnswer -> Accepted [ label = "dum::accept/send::2xx,timer::2xx,app::onConnected" ];
148 OfferReliableProvidedAnswer -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
149 OfferReliableProvidedAnswer -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
150 OfferReliableProvidedAnswer -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
151 OfferReliableProvidedAnswer -> Terminated [ label = "onCancel/send::200C,send::487I,app::onTerminated,dum::destroy" ];
152
153 NoAnswerReliableWaitingPrack -> NoAnswerReliableWaitingPrack [ label = "dum::provisional/queue 1xx waiting for PRACK" ];
154 NoAnswerReliableWaitingPrack -> NoAnswerReliableWaitingPrack [ label = "dum::provideAnswer/store answer waiting for PRACK" ];
155 NoAnswerReliableWaitingPrack -> NoAnswerReliableWaitingPrack [ label = "dum::accept/queue 200 waiting for PRACK" ];
156 NoAnswerReliableWaitingPrack -> NoAnswerReliable [ label = "onPRACK/200P" ];
157 NoAnswerReliableWaitingPrack -> Accepted [ label = "onPRACK/200P,200 in queue,send2xx,timer::2xx,app::onConnected" ];
158 NoAnswerReliableWaitingPrack -> Terminated [ label = "onTimeout/send:5XXI,app::onTerminated,dum::destroy" ];
159 NoAnswerReliableWaitingPrack -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
160 NoAnswerReliableWaitingPrack -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
161 NoAnswerReliableWaitingPrack -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
162 NoAnswerReliableWaitingPrack -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
163
164 NoAnswerReliable -> NoAnswerReliable [ label = "dum::provisional/send::1xx,timer::1xx" ];
165 NoAnswerReliable -> NoAnswerReliableWaitingPrack [ label = "dum::provisional-rel/send::1xx,timer::1xxRel" ];
166 NoAnswerReliable -> OfferReliableProvidedAnswer [ label = "dum::provideAnswer/store answer" ];
167 NoAnswerReliable -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
168 NoAnswerReliable -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
169 NoAnswerReliable -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
170 NoAnswerReliable -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
171
172 NoOfferReliable -> NoOfferReliable [ label = "dum::provisional/send::1xx,timer:1xx" ];
173 NoOfferReliable -> ProvidedOfferReliable [ label = "dum::provideOffer/store::offer" ];
174 NoOfferReliable -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
175 NoOfferReliable -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
176 NoOfferReliable -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
177 NoOfferReliable -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
178
179 ProvidedOfferReliable -> FirstSentOfferReliable [ label = "dum::provisional-rel/send::1xx-offer,timer:1xxRel" ];
180 ProvidedOfferReliable -> AcceptedWaitingAnswer [ label = "dum::accept/send::2xx-offer,timer:2xx,timer::NoAck,app::onConnected" ];
181 ProvidedOfferReliable -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
182 ProvidedOfferReliable -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
183 ProvidedOfferReliable -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
184 ProvidedOfferReliable -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
185
186 FirstSentOfferReliable -> FirstSentOfferReliable [ label = "dum::provisional/store 1xx waiting for PRACK" ];
187 FirstSentOfferReliable -> NegotiatedReliable [ label = "onPRACK-answer/200P,app::onAnswer" ];
188 FirstSentOfferReliable -> Terminated [ label = "onPRACK-noanswer/send::406P,send::406I,app::onTerminated,dum::destroy" ];
189 FirstSentOfferReliable -> Terminated [ label = "onTimeout/send:5XXI,app::onTerminated,dum::destroy" ];
190 FirstSentOfferReliable -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
191 FirstSentOfferReliable -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
192 FirstSentOfferReliable -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
193 FirstSentOfferReliable -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
194
195 FirstSentAnswerReliable -> FirstSentAnswerReliable [ label = "dum::provisional/store 1xx waiting for PRACK" ];
196 FirstSentAnswerReliable -> FirstSentAnswerReliable [ label = "dum::accept/queue::2xx waiting for PRACK" ];
197 FirstSentAnswerReliable -> NegotiatedReliable [ label = "onPRACK/200P" ];
198 FirstSentAnswerReliable -> NegotiatedReliable [ label = "onPRACK-offer/onOffer" ];
199 FirstSentAnswerReliable -> Accepted [ label = "onPRACK/200P/200 in queue,send2xx,timer::2xx,app::onConnected" ];
200 FirstSentAnswerReliable -> Terminated [ label = "onTimeout/send:5XXI,app::onTerminated,dum::destroy" ];
201 FirstSentAnswerReliable -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
202 FirstSentAnswerReliable -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
203 FirstSentAnswerReliable -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
204 FirstSentAnswerReliable -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
205
206 NegotiatedReliable -> NegotiatedReliable [ label = "onPRACK/send::200P" ];
207 NegotiatedReliable -> NegotiatedReliable [ label = "dum::provisional/send::1xx,timer::1xx" ];
208 NegotiatedReliable -> NegotiatedReliable [ label = "dum::provisional-rel/send::1xx,timer::1xxRel" ];
209 NegotiatedReliable -> Accepted [ label = "dum::accept/send::2xx,timer::2xx" ];
210 NegotiatedReliable -> NegotiatedReliable [ label = "dum::accept-queue 2xx if waiting for PRACK" ];
211 NegotiatedReliable -> ReceivedUpdate [ label = "onUpdate-offer/app::onOffer" ];
212 NegotiatedReliable -> SentUpdate [ label = "dum::provideOffer/send::UPDATE" ];
213 NegotiatedReliable -> ProvidedOffer [ label = "dum::provideOffer-sendOfferAtAccept/store offer" ];
214 NegotiatedReliable -> NegotiateReliable [ label = "dum::provideAnswer/send::200P-answer" ];
215 NegotiatedReliable -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
216 NegotiatedReliable -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
217 NegotiatedReliable -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
218 NegotiatedReliable -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
219
220 SentUpdate -> SentUpdateAccepted [ label = "dum::accept/queue 2xx" ];
221 SentUpdate -> NegotiatedReliable [ label = "on2XXU/app:onAnswer" ];
222 SentUpdate -> SentUpdateGlare [ label = "on491U/start 491 timer" ];
223 SentUpdate -> NegotiatedReliable [ label = "on4XXU/app::onOfferRejected" ];
224 SentUpdate -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
225 SentUpdate -> Terminated [ label = "dum::reject/send::4XXI,app::onTerminated,dum::destroy" ];
226 SentUpdate -> Terminated [ label = "dum::redirect/send::3XXI,app::onTerminated,dum::destroy" ];
227 SentUpdate -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
228
229 SentUpdateAccepted -> Accepted [ label = "on2xxU/app::onAnswer,send::2XXI" ];
230 SentUpdateAccepted -> Accepted [ label = "on4XXU/app::onOfferRejected,send::2XXI" ];
231 SentUpdateAccepted -> Accepted [ label = "on491U/app::onOfferRejected,send::2XXI" ];
232 SentUpdateAccepted -> Terminated [ label = "dum::end/send::4XXI,app::onTerminated,dum::destroy" ];
233 SentUpdateAccepted -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
234 // reject is not allowed once accepted
235
236 ReceivedUpdate -> ReceivedUpdateWaitingAnswer [ label = "dum::accept/queue::2xx" ];
237 ReceivedUpdate -> NegotiatedReliable [ label = "dum::provideAnswer/send::200U-answer" ];
238 ReceivedUpdate -> Terminated [ label = "dum::end/send::488U,send::4XXI,app::onTerminated,dum::destroy" ];
239 ReceivedUpdate -> Terminated [ label = "dum::reject/send::488U,send::4XXI,app::onTerminated,dum::destroy" ];
240 ReceivedUpdate -> Terminated [ label = "dum::redirect/send::488U,send::3XXI,app::onTerminated,dum::destroy" ];
241 ReceivedUpdate -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
242
243 ReceivedUpdateWaitingAnswer -> Accepted [ label = "dum::provideAnswer/send::2XXU-answer,send::2XXI" ];
244 ReceivedUpdateWaitingAnswer -> Terminated [ label = "dum::end/send::488U,send::4XXI,dum::destroy" ];
245 ReceivedUpdateWaitingAnswer -> Terminated [ label = "onCancel/,app::onTerminated,dum::destroy" ];
246 // reject is not allowed once accepted
247 }

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