/[resiprocate]/main/resip/dum/RegistrationCreator.cxx
ViewVC logotype

Contents of /main/resip/dum/RegistrationCreator.cxx

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9033 - (show annotations) (download)
Sun Feb 27 17:17:15 2011 UTC (8 years, 8 months ago) by sgodin
File MIME type: text/plain
File size: 3459 byte(s)
-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
1 #include "resip/dum/RegistrationCreator.hxx"
2 #include "resip/dum/ClientRegistration.hxx"
3 #include "resip/dum/DialogUsageManager.hxx"
4 #include "resip/dum/MasterProfile.hxx"
5 #include "rutil/Random.hxx"
6 #include "rutil/Logger.hxx"
7
8 using namespace resip;
9
10 #define RESIPROCATE_SUBSYSTEM Subsystem::DUM
11
12 RegistrationCreator::RegistrationCreator(DialogUsageManager& dum,
13 const NameAddr& target,
14 SharedPtr<UserProfile> userProfile,
15 UInt32 registrationTime)
16 : BaseCreator(dum, userProfile)
17 {
18 makeInitialRequest(target, target, REGISTER);
19 mLastRequest->header(h_RequestLine).uri().user() = Data::Empty;
20 mLastRequest->header(h_Expires).value() = registrationTime;
21
22 // Tag Contact with rInstance, InstanceId, regId, and/or methods parameter according to profile settings
23 ClientRegistration::tagContact(mLastRequest->header(h_Contacts).front(), dum, userProfile);
24
25 DebugLog ( << "RegistrationCreator::RegistrationCreator: " << mLastRequest);
26 }
27
28 /* ====================================================================
29 * The Vovida Software License, Version 1.0
30 *
31 * Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
32 *
33 * Redistribution and use in source and binary forms, with or without
34 * modification, are permitted provided that the following conditions
35 * are met:
36 *
37 * 1. Redistributions of source code must retain the above copyright
38 * notice, this list of conditions and the following disclaimer.
39 *
40 * 2. Redistributions in binary form must reproduce the above copyright
41 * notice, this list of conditions and the following disclaimer in
42 * the documentation and/or other materials provided with the
43 * distribution.
44 *
45 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
46 * and "Vovida Open Communication Application Library (VOCAL)" must
47 * not be used to endorse or promote products derived from this
48 * software without prior written permission. For written
49 * permission, please contact vocal@vovida.org.
50 *
51 * 4. Products derived from this software may not be called "VOCAL", nor
52 * may "VOCAL" appear in their name, without prior written
53 * permission of Vovida Networks, Inc.
54 *
55 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
56 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
57 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
58 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
59 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
60 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
61 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
62 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
63 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
64 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
65 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
66 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
67 * DAMAGE.
68 *
69 * ====================================================================
70 *
71 * This software consists of voluntary contributions made by Vovida
72 * Networks, Inc. and many individuals on behalf of Vovida Networks,
73 * Inc. For more information on Vovida Networks, Inc., please see
74 * <http://www.vovida.org/>.
75 *
76 */

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