Log of /main/resip/dum/InviteSession.cxx
Parent Directory
|
Revision Log
Revision
10695 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 22 23:12:34 2013 UTC
(6 years ago)
by
sgodin
File length: 96286 byte(s)
Diff to
previous 9956
,
to
selected 5532
-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
Revision
9956 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Sat Jan 26 02:05:35 2013 UTC
(6 years, 10 months ago)
by
fjoanis
File length: 95357 byte(s)
Diff to
previous 9902
,
to
selected 5532
- Ensured that all DUM usages/sessions DumCommandAdapter commands are using handles rather than references when saving the usage/session they apply to.
- This fixes potential crashes in the case where a DumCommandAdapter would be enqueued onto the stack's queue while a usage terminating message is sitting in the queue.
- The effect in that case would be that the saved reference to the usage would become invalid and this could cause a crash.
- Also fixed an issue with InviteSession::*NITCommand() where DumCommandAdapter commands would end up being recursively queued onto the stack.
Revision
9823 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Aug 3 20:16:52 2012 UTC
(7 years, 4 months ago)
by
fjoanis
File length: 93963 byte(s)
Diff to
previous 9267
,
to
selected 5532
resip/dum: InviteSession: fixed recursive calls to refer (w/ sessionToReplace) when using referCommand and InviteSessionReferExCommand.
Revision
9267 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 19 17:07:33 2011 UTC
(8 years, 2 months ago)
by
fjoanis
File length: 93970 byte(s)
Diff to
previous 9176
,
to
selected 5532
Implemented InviteSession::reject while in the SentReinviteAnswered state. This is useful when needing to reject with an empty ACK an offer that was requested (using an empty INVITE) while in a dialog. Thanks for Robert Szokovacs for reporting the bug.
Revision
9033 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Sun Feb 27 17:17:15 2011 UTC
(8 years, 9 months ago)
by
sgodin
File length: 92972 byte(s)
Diff to
previous 9006
,
to
selected 5532
-merge work from b-client-outbound-20110213 - client outbound support (RFC 5626)
- New UserProfile settings
- clientOutboundEnabled
- setRegId
- UserProfile now tracks flow used at registration time if server indicates outbound support, and
all usages that are assigned the same UserProfile will use this flow
- ;ob parameter is added to contact headers of non-REGISTER requests if clientOutboundEnabled
- ;reg-id parameter is added to contact headers of REGISTER requests if configured
- ;+sip.instance is added to all contact headers if configured
- ClientRegistration tagContact is now static and is used in RegistrationCreator for consistency
- Keep alive pong responses are now routed from Stack to DUM Keepalive Manager
- DUM Keep alive manager will terminate flows if a pong response is not received from
an outbound enabled connection after a default of 10 seconds
-removed a bunch of non-implemented methods from DialogUsageManager.hxx
-optimized some accesses to user profile from usages
-added new makeInviteSession calls that accept an InviteSessionHandle and add an appropriate replaces header
-treat internal 503 errors the same as 408 errors when dispatching onRequestRetry callback for
ClientRegistration, ClientSubscription and ClientPublication
- allows retry logic that is consistent when using both UDP or TCP/TLS transports
- note: TCP/TLS transports get a 503 error when they cannot connect, UDP transports typically
get a 408 error when the far end is not present
-ClientRegistration changes to ensure calling requestRefresh will not assert in any state
- allow calling requestRefresh while a retry timer is running to request an immediate retry
-created onFlowTerminated callbacks on:
- ClientRegistrationHandler - default implementation is to retry registration immediately
- InviteSessionHandler - current default implementation is to do nothing
- ServerSubscriptionHandler - default implementation is to end the Subscription
- ClientSubscriptionHandler - default implementation is to reSubscribe (new Dialog)
-fix for ContactInstanceRecord equality checks - registration server was not treating contacts with the same
instance id as equal if the contact URI was different
Revision
8930 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 28 20:13:21 2010 UTC
(8 years, 11 months ago)
by
sgodin
File length: 92352 byte(s)
Diff to
previous 8925
,
to
selected 5532
-added new method to dum InviteSession to allow creating a refer with replaces with
application/externally provided replaces information
Revision
8842 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 1 21:26:34 2010 UTC
(9 years, 1 month ago)
by
sgodin
File length: 91868 byte(s)
Diff to
previous 8791
,
to
selected 5532
-allow INFO and MESSAGE to be sent in early dialogs
-reflow: Make sure we keep receiving if we get an ICMP error on a UDP socket
-added VS2010 projects for reflow/recon/reTurn - untested
Revision
8791 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 2 16:33:31 2010 UTC
(9 years, 4 months ago)
by
sgodin
File length: 92611 byte(s)
Diff to
previous 8770
,
to
selected 5532
-clarified some order of operations with use of parenthesis (removes warnings on some compilers)
-Note: behaviour of Helper::algorithmAndQopSupported is fixed as a result
Revision
8762 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 3 17:43:33 2010 UTC
(9 years, 9 months ago)
by
bcampen
File length: 92370 byte(s)
Diff to
previous 8727
,
to
selected 5532
Tweak to RSeq check; check RSeq if a reliable provisional comes in when we
didn't use Require: 100rel, but used Supported: 100rel instead. Also, don't
treat Supported: 100rel in a provisional response as indicating reliability.
(3262 says reliable provisionals MUST have a Require: 100rel and an RSeq)
Revision
8726 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Sun Jan 3 17:15:16 2010 UTC
(9 years, 11 months ago)
by
sgodin
File length: 92499 byte(s)
Diff to
previous 8690
,
to
selected 5532
-made DUM InviteSession offer answer logic to be Content type generic
(ie. able to handle offer/answer of non-SDP mime types)
- now stores / manipulates offer/answer logic using base Contents class instead
of SdpContents
- full backwards compatibility is possible
- new setting on InviteSessionHandler constructor to indicate to InviteSession
if the onOffer/onAnswer (etc.) callbacks should return SDP or generic
Contents (see note in InviteSessionHandler.hxx)
Revision
8690 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Nov 11 16:36:26 2009 UTC
(10 years, 1 month ago)
by
sgodin
File length: 89345 byte(s)
Diff to
previous 8516
,
to
selected 5532
- According to RFC3311 is it recommended to not use UPDATE for comfirmed dialogs - all three states here are
confirmed dialogs, so we can just remove the sending of UPDATE from here entirely
Revision
8516 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Jun 18 12:39:28 2009 UTC
(10 years, 5 months ago)
by
sgodin
File length: 89558 byte(s)
Diff to
previous 8476
,
to
selected 5532
-renamed PreferUACRefreshes to PreferCallerRefreshes and renamed PreferUASRefreshes
to PreferCalleeRefreshes in order to make the setting more clear as to what they
actually do
Revision
8476 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed May 6 15:55:34 2009 UTC
(10 years, 7 months ago)
by
sgodin
File length: 89600 byte(s)
Diff to
previous 8465
,
to
selected 5532
-patch contributed by Gerard Blais
- fix for receiving a BYE message when DUM is waiting for the application
to respond to a mid-dialog UPDATE, reINVITE, MESSAGE or INFO request.
A 487 is now sent for the outstanding request and the BYE is processed normally.
- fix to send a 500 if a second NIT (INFO or MESSAGE) request are received before the
sending out the response to the first one
Revision
8400 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Jan 21 18:24:57 2009 UTC
(10 years, 10 months ago)
by
sgodin
File length: 87306 byte(s)
Diff to
previous 8359
,
to
selected 5532
-fixed a bug where the Content-Type header could be set in a UPDATE Session Refresh
to application/sdp, but the content length would be 0 - the content-type header
should not be present
Revision
8359 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 9 21:13:18 2008 UTC
(11 years ago)
by
sgodin
File length: 87312 byte(s)
Diff to
previous 8217
,
to
selected 5532
-moved InviteSession::myAddr, peerAddr and remoteTarget dialog property
access fns to DialogUsage class so that they can be accessed by other usages
-removed InviteSession::getDialogId fn - since this fn actually returned the
call id, and both call id and actual dialog id are already accessible via
existing DialogUsage members
Revision
8161 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Jul 25 20:54:42 2008 UTC
(11 years, 4 months ago)
by
jmatthewsr
File length: 86950 byte(s)
Diff to
previous 8112
,
to
selected 5532
Stream performance enhancements for encoding objects. New encoding code should use 'EncodeStream','resipCerr' and 'resipCout' for encoding any resip objects. Merge from b-jmatthewsr-streamperf2 -r 8137:8160.
Revision
7292 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Oct 4 16:32:08 2007 UTC
(12 years, 2 months ago)
by
sgodin
File length: 86083 byte(s)
Diff to
previous 7267
,
to
selected 5532
- implemented a stale re-invite timer
- duration is settable via Profile with a default of 40 seconds
- New onStaleReInviteTimeout callback on InviteSession for applications that are interested
- default implementation of onStaleReInviteTimeout is to end() the call
- added new End Reason - StaleReInvite
- fixes an issues of lingering usages when sending a re-invite, receiving a 1xx response and no final response
- Accept BYE messages in WaitingToTerminate state
- Respond to other requests with a 400 in WaitingToTerminate state
Revision
7238 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Sep 10 14:28:04 2007 UTC
(12 years, 3 months ago)
by
jmatthewsr
File length: 83913 byte(s)
Diff to
previous 7227
,
to
selected 5532
In DUM, when retransmitting ACK's, identify corresponding inbound 200Ok's by transaction id not cseq. An invalid UA could send a 200Ok to a request within a dialog with a cseq of 1, which would be incorrectly ACK'd and cause a DUM state machine (invitesession) to stay in a state that is waiting for the 200 and eventually get stuck in the WaitingToTerminate.
Bad UA resip/dum
1) reINVITE (cseq=2) <-
2) 200 (cseq = 1)->
3) ACK <-
Revision
7206 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Jul 11 19:14:18 2007 UTC
(12 years, 5 months ago)
by
bcampen
File length: 83803 byte(s)
Diff to
previous 7200
,
to
selected 5532
Fixing some ACK/2xx retransmission code that was being run when we got a 3xx (wasn't strictly broken, just a needless search through a data structure.)
Revision
7084 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 19 08:50:33 2007 UTC
(12 years, 7 months ago)
by
nash
File length: 84187 byte(s)
Diff to
previous 7081
,
to
selected 5532
Security.cxx/hxx:
allow to disable server authentication
InviteSession.cxx:
public getProposedRemoteSdp() method
when assigning mProposedRemoteSdp, don't make clone it simply take over ownership as sdp is not used later part of the codes
Revision
7077 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 16 10:07:24 2007 UTC
(12 years, 8 months ago)
by
nash
File length: 84047 byte(s)
Diff to
previous 7044
,
to
selected 5532
inside resip/stack/Transaction::process method contains complex
logics and message ptr can be easily leaked if it's not maintained by
original coder, therefore I changed to SharedPtr usage and made a bunch
of code changed to make it compile.
Also another place worth mention as TimeLimitFifo::add method could
result memory leak usage, and it's fixed on the way for above changes.
The tests under rutil/stack/dum has passed as well.
resip/stack/Security add to allow disable server authentication check
Revision
7044 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 9 16:38:05 2007 UTC
(12 years, 8 months ago)
by
sgodin
File length: 83148 byte(s)
Diff to
previous 7042
,
to
selected 5532
-fixes to recent asynchronous DUM calls commit to build on VS.NET
-added locking to repro Store classes that have a local cache for thread safety
Revision
7042 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Apr 9 07:02:41 2007 UTC
(12 years, 8 months ago)
by
nash
File length: 83415 byte(s)
Diff to
previous 6912
,
to
selected 5532
DialogUsageManager:
add ExternalMessageHandler interface
add hasEvent method
changes to process methods to allow mutex lock while in-processing
ClientRegistration/ClientSubscription/ClientPagerMessage/ClientPublication/InviteSession/ServerInviteSession/ServerPagerMessage:
Provide asynchronous method access by using command
Revision
6617 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 4 18:25:08 2006 UTC
(13 years, 2 months ago)
by
sgodin
File length: 74329 byte(s)
Diff to
previous 6568
,
to
selected 5532
- InviteSession.cxx - added some missing states to isAccepted()
- Added AnswerMode and PrivAnswerMode headers from draft-ietf-answermode-01
- created new Symbols for ReferNoSub and AnswerMode
Revision
6568 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Sep 12 23:11:06 2006 UTC
(13 years, 3 months ago)
by
adam
File length: 74192 byte(s)
Diff to
previous 6559
,
to
selected 5532
Tiny tweaks here and there to allow rutil, resip, and dum to build under MinGW.
Getting repro compiled in MinGW is still a work in progress, mostly because
bdb is being a pain in the rear.
Revision
6507 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Aug 15 17:01:21 2006 UTC
(13 years, 4 months ago)
by
sgodin
File length: 74132 byte(s)
Diff to
previous 6416
,
to
selected 5532
- changed ExpiresCategory.cxx to be an UInt32 so that Expires parameter can handle up to 2^32-1 as in RFC
- modified dum so that expiration values use UInt32 instead of int for storage
Revision
6259 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon May 29 15:03:15 2006 UTC
(13 years, 6 months ago)
by
sgodin
File length: 73819 byte(s)
Diff to
previous 6209
,
to
selected 5532
- added ability to get peer capabilities from InviteSession
- added store of all peer names presented in a certificate's subjectAltName list
- if no subjectAltName, then commonName is used
- modified TLS client domain name check to look through all possible peer names
- modified repro - isTrustedNode to look at all peer names
Revision
6198 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon May 8 20:00:25 2006 UTC
(13 years, 7 months ago)
by
sgodin
File length: 73941 byte(s)
Diff to
previous 6186
,
to
selected 5532
- Dialog.cxx - remove replaces header from newly created requests
- InviteSession.cxx - populate tags in replaces header correctly if session to be replaces is a UAS Session
Revision
5929 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 16 22:36:43 2006 UTC
(13 years, 10 months ago)
by
dworley
File length: 72268 byte(s)
Diff to
previous 5830
,
to
selected 5532
Start cleaning up svn:eol-style and EOLs in files.
Note that text and program files that can be used on both Un*x and Windows
should have svn:eol-style=native so they check out correctly on both
platforms.
Revision
5747 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 14 17:04:17 2005 UTC
(14 years ago)
by
sgodin
File length: 69910 byte(s)
Diff to
previous 5746
,
to
selected 5532
- separate mLastSessionRefresh into mLastLocalSessionRefresh and mLastRemoteSessionRefresh
- fixed bug where remote message headers could get used in outbound requests
- removed mInvite member - uses mLastLocalSessionRefresh instead
- cleaned up sendAck implementation
Revision
5703 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 28 20:17:13 2005 UTC
(14 years ago)
by
sgodin
File length: 70097 byte(s)
Diff to
previous 5697
,
to
selected 5532
- removed extra CSeq checking - the stack takes care of this for us
- ie. the stack will not pass a 200 to the app for which is does not have a matching transaction
Revision
5697 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Nov 24 17:19:12 2005 UTC
(14 years ago)
by
sgodin
File length: 70538 byte(s)
Diff to
previous 5645
,
to
selected 5532
- added checks to InviteSession to verify CSeq on 2xx responses match our last request (or are a retransmission) - if not just drop them
- added onConnectedConfirmed callback for ACK (without answer) on initial invite
- removed enumSuffix vector copying (note: there are still some mulit-threaded concerns)
- added missing InvalidContents files from .vcproj
Revision
5591 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 31 20:55:33 2005 UTC
(14 years, 1 month ago)
by
daniel
File length: 70233 byte(s)
Diff to
previous 5586
,
to
selected 5532
1. Added getSdp method in /resip/stack/Helper.cxx. This method just simply walks the contents tree and returns the first SdpContents in the tree.
2. Added handling of Ack without answer in ServerInviteSession::dispatchAcceptedWaitingAnswer.
3. Implemented 491 timers according to RFC3261. (in InviteSession.cxx)
4. Fixed DumTimeout::WaitForAck handling in InviteSession::dispatch(const DumTimeout& timeout).
Revision
5586 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 28 21:01:13 2005 UTC
(14 years, 1 month ago)
by
sgodin
File length: 69540 byte(s)
Diff to
previous 5575
,
to
selected 5532
- modified ACK handling
- mAckId is no longer tracked by Dialog.cxx - all logic is in InviteSession.cxx
- Authorization and Proxy-Authorization headers are copied to acks from the InviteSession.cxx
- 2xx retransmission is now detected and handled properly - no more incorrect handler callbacks
- DialogSet destruction bug fixed
- onStaleCallTimeout callback no has a default handler to send a BYE - app can override and send a CANCEL if desired
-
Revision
5555 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Wed Oct 19 14:04:10 2005 UTC
(14 years, 1 month ago)
by
sgodin
File length: 67865 byte(s)
Diff to
previous 5544
,
to
selected 5532
- changed isEarly to return true for UAC early states only
- added isAccepted to return false if UAS->accept is required
- bbridge to be modified to use this
- added requestOffer API to allow sending reInvite without SDP
- added new handler onOfferRequestRejected - if error response is received for
reinvite with no sdp
- added new requestOffer states and transitions
- added internal helper provideProposedOffer to clean up code
- corrected some missing sets of mProposedRemoteSdp
- fixed Glare state handling in dispatchGlare
Revision
5544 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Tue Oct 18 01:11:48 2005 UTC
(14 years, 2 months ago)
by
jason
File length: 62037 byte(s)
Diff to
previous 5532
will not call onAnswer from a session timer refresh...will call onRemoteSdpChanged if appropriate
Revision
5532 -
(
view)
(
download)
(
annotate)
-
[selected]
Modified
Fri Oct 14 02:56:24 2005 UTC
(14 years, 2 months ago)
by
derek
File length: 61355 byte(s)
Diff to
previous 5531
reason header fix
Revision
5505 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 7 19:58:39 2005 UTC
(14 years, 2 months ago)
by
daniel
File length: 60554 byte(s)
Diff to
previous 5499
,
to
selected 5532
Added a virtual method onReadyToSend in BaseUsage. The BaseUsage send() calls onReadyToSend before calling send on DUM. Any usage can override this method to give application a chance to adorn the message. The default onReadyToSend does nothing. Callback onReadyToSend is also added in InviteSessoinHandler, ServerSubscriptionHandler, and ClientSubscriptionHandler.
Revision
5487 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 29 00:49:09 2005 UTC
(14 years, 2 months ago)
by
daniel
File length: 60300 byte(s)
Diff to
previous 5466
,
to
selected 5532
Fixed two bugs: 1). host part is missing in Referred-By when the caller does the transfer. 2). The remote credentials are used in the re-invite.
Revision
3291 -
(
view)
(
download)
(
annotate)
-
[select for diffs]
Modified
Sat Aug 28 02:30:03 2004 UTC
(15 years, 3 months ago)
by
derek
Original Path:
main/sip/resiprocate/dum/InviteSession.cxx
File length: 27463 byte(s)
Diff to
previous 3289
,
to
selected 5532
late media related fixes & changes
rejectOffer has been renamed to rejectDialogModification
acceptOffer has been renamed to acceptDialogModification
This is because the late re-invite case, there is no offer to reject.
Pedantic, possibly.
onOfferRequired has been added..called when an Invite w/out an offer is received.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.