# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1270062627 -10800 # Node ID c2e8c8b73582b07bea16f1c2a20e3e9e4f49ff04 # Parent dc4cddf5f2f895e9b00e54553bb344bdfa046477 Revision: 201011 Kit: 201013 diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/rtp/cfrtp/documentation/rtpflows.eap Binary file realtimenetprots/rtp/cfrtp/documentation/rtpflows.eap has changed diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/rtp/documentation/RTP.vsd Binary file realtimenetprots/rtp/documentation/RTP.vsd has changed diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/rtp/documentation/rtp.dox --- a/realtimenetprots/rtp/documentation/rtp.dox Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of the License "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// This is the extra documentation for the RTP API -// This is the API for the SymbianOS RTP stack. -// To use this API, start by creating a RRtpSession -// A session encapsulates all RTP traffic to/from a particular port, and -// its associated RTCP traffic. -// RTP traffic from this port is modelled via the RRtpSendStream class. -// RTP traffic from a particular remote host is modelled via RRtpReceiveStream -// RRtpPacket and its subclasses RRtpSendPacket and RRtpReceivePacket are -// the encapsulations of the RTP packets. -// The API uses a R class 'cheshire cat' idiom. All the R classes in -// the API are handles onto resources, or you may prefer to think of -// them as wrappers round pointers. As such they have the following -// properties: -// - They are very lightweight and can be copied around by value. -// - 2 copies of the same handle are 'the same thing'; if you do something -// to one of them it will apply to the other. -// - They need to be 'opened' before they point to anactual resource, -// and must be closed when the resource is no longer needed. Note -// that in some cases, the resource is considered to be owned by -// another resource, so there is no need to close it. In these -// cases, there is no close method and this fact is clearly -// documented. If an R class is closed, any other copies of the -// same handle will become invalid as they are handles to -// nonexistent resources. -// The RTP stack relies heavily on an event model based on callback -// functions. This has the following advantages over alternative methods, -// such as signaling events via TRequestStatus objects or using mixins: -// - It is more flexible for the client; we can distinguish a large number -// of different events and allow the client to chose if they want to -// receive notifications about them in 1 function or many, and how they -// want to spread different notifications over their object structure. -// To give an example, a client might be interested in all SDES messages, -// only in some types of SDES messages or in no SDES messages, and they -// might want to handle these messages in different parts of the code or -// all in the same part. THe callback model can support all these cases. -// - Many other RTP APIs on other platforms use a similar concept, so -// creating a simialr API makes it easier to port code that originated -// on top of these APIs. -// There are 4 major concepts in the event model: -// - An event manager. The session, the send stream and the receive -// streams each have their own event manager. Callbacks registered -// on 1 manager don't apply to other managers. The manager is not -// exposed in the API. -// - An event. (TRtpEvent class). An event is generated when anything -// happens that the client might want to know about. The event can -// be thought of as comprising 2 numbers, the event type taken from -// TRtpEventType and another parameter whose meaning is event-type -// specific. For instance, for all the 'Fail' events it is a -// SymbianOS error code. Additional information might be implicitly -// associated with the event, but needs to be fetched from another -// object, for instance when processing a ErtpPacketReceived event, -// the RRtpReceivePacket object must be obtained from the -// Rrt-ReceiveStream. Events are associated with an object; for -// instance receive stream events are associated with a -// RRtpReceiveStream. There are functions on the event for -// obtaining that object. -// - A callback function. A callback function is a static function -// with a particular signature. Static -// functions are used because callback models using member -// functions in C++ either involve bending the rules of the -// language or a lot of code bloat. If a function is registered for -// a particular event, it will be called when that event -// occurs. One callback function can be associated with more than 1 -// callback registration. Callback functions take a pointer argument -// which was supplied as part of the registration; normally a -// static callback function in a CFoo class would take a pointer to -// a CFoo* and call a member function on the CFoo object that does -// the real work. -// - A callback registration. A callback registration is the thing -// that glues all this together. The event manager contains a -// number of callback registrations, each of which binds a function -// and pointer (normally an object) to a particular kind of -// event. Registrations can be bound to all events on a stream -// (except 'Fail' events), via the ErtpAnyEvent code, or they can -// be further restricted by a parameter whose meaning is event-type -// specific. (For instance for the ErtpSDES event, the parameter is -// used to express interest in only a particular SDES field.) The -// same callback function and object can be registered for several -// different registrations, possibly even on different streams. -// So to use the event model, decide which events you care about, decide -// which objects care about those events, and register functions in all -// those objects to be told about all the events. -// If an event leaves, an Fail event will be generated with the leave -// code. Handlers for error events must not leave, as this would -// result in an infinite loop if allwed. It is reccomended that error -// events are handled by a separate callback to other events, to avoid -// confusion about whether leaves are allowed. (This is why callbacks -// registered for ErtpAnyEvent don't get called back for Fail events) -// One-shot event registrations are registrations that are only called -// back once. For instance, an application might want to display the -// NAME SDES parameter but might only need to be told what it is when -// the first one arrives. A one-shot resistration will only be called -// back for the first NAME received. -// To register events, use one of the RegisterEventCallbackL -// functions. These are template functions that are available in -// global and member-function versions. The reason for this is -// limitations in the handling of template member functions in MSVC6; -// in many situations calls to the member functions won't compile and -// the global functions should be used instead. -// Note that there are always a pair of functions; one doesn't take -// the 'aParameter' parameter, and defaults it to -// KRtpNoParameter. This is more efficient as the parameter is often -// not used. -// The callback function takes a pointer which can be of any type. -// The RegisterEventCallbackL functions are all templated so that the -// pointer you supply must be of the same type as the function -// expects. -// As RTP/RTCP is removable from ROM using the SYMBIAN_EXCLUDE_RTP_RTCP -// in the build rom command a stub is used to prevent linking failures. -// The "#ifdef RTP_Removed" is used to reduce the overhead of having an extra set of cpp files to create the -// stub. Using "#ifdef RTP_Removed" the MMP files create an extra set of stubbed -// dlls from the one cpp file. The iby file then exports the complete or stubbed dlls depending on the -// SYMBIAN_EXCLUDE macro. -// The Open session functions leave with KErrNotSuported when the stub is used. Functions -// which can not leave ASSERT in debug mode as should not have been called since the Open and similar -// functions should have 'left'. -// -// - -/** - @mainpage Symbian RTP API - The RTP stack's event model is described in the section '@ref Events' - @page Events The Event Model - @page Stub of RTP API with #ifdef RTP_Removed -*/ diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/rtp/group/mm-protocols_rtp.history.xml --- a/realtimenetprots/rtp/group/mm-protocols_rtp.history.xml Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,309 +0,0 @@ - - - - Real Time Transport Protocol. 2 dll's implied. - - - - Fix for: - DEF138644 RTCP SR packet reports wrong NTP Timestamp value - - - - Fix for: - DEF138151[FST]Verification of RTCPRRJitter fails for moderate sized (audio/video) data - - - - Fix for: - DEF131783 Functionality moved from SCPRStates to PRStates namespace - - - - Fix for: - DEF128260 Fix RTP published API to match the original design sketch - - - - Fix for: - PDEF130573 CF-RTP should remove unnecessary memcopies. - - - - Fix for: - PDEF129033 CSubConRTPGenericParamSet::AddRtpExtension( ) might be used to load malware DLLs - - - - Fix for: - DEF129424 GT errors due to Converged-comms in M04729 v9.5,Future - - - - Fix for: - DEF128627 [Coverity]-FORWARD_NULL-mm-protocols/rtp - - - - Fix for: - PDEF128596 rtpremoved.dll is exporting incorrect ordinal sequence for AMRv5 - - - - Fix for: - DEF127519 CSubConRTPGenericParamSet parameter name RTP incorrect - - - - Fix for: - DEF127581 Some dirs in "mm-protocols_rtp" do not exist - - - - Mesh Machine Productisation - - - - Fix for: - DEF127153 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-queue-status-request-underflow - - - - Fix for: - DEF127152 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-acknowledgement-underflow - - - - Fix for: - DEF127151 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-release-underflow - - - - Fix for: - DEF127150 ICC Codenomicon : omapoc-rtcp-app-tbcp-tb-request-underflow - - - - Fix for: - DEF127148 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-queue-status-response-underflow - - - - Fix for: - DEF127145 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-deny-underflow - - - - Fix for: - DEF127144 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-granted-underflow - - - - Fix for: - DEF127143 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-revoke-underflow - - - - Fix for: - DEF127142 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-taken-underflow - - - - Fix for: - DEF127141 ICC Codenomicon :omapoc-rtcp-app-tbcp-tb-idle-underflow - - - - Fix for: - DEF127140 ICC Codenomicon :omapoc-rtcp-app-tbcp-disconnect-underflow - - - - Fix for: - DEF127066 ICC Codenomicon :omapoc-rtcp-app-tbcp-connect-underflow - - - - Fix for: - DEF127065 ICC Codenomicon : rfc3611-rtcp-xr-voip-sdes-underflow - - - - Fix for: - DEF127064 ICC Codenomicon : rfc3611-rtcp-xr-stats-sdes-underflow - - - - Fix for: - DEF127063 ICC Codenomicon :rfc3611-rtcp-xr-dlrr-sdes-underflow - - - - Fix for: - DEF127061 ICC Codenomicon :rfc3611-rtcp-xr-rrt-sdes-underflow - - - - Fix for: - DEF127059 ICC Codenomicon : rfc3611-rtcp-xr-prt-sdes-underflow - - - - Fix for: - DEF127058 ICC Codenomicon : rfc3611-rtcp-xr-dup-rle-sdes-underflow - - - - Fix for: - DEF127057 ICC Codenomicon : rfc3611-rtcp-xr-loss-rle-sdes-underflow - - - - Fix for: - DEF126969 ICC Codenomicon : rfc3550-rtcp-rr-sdes-rr-underflow - - - - Fix for: - DEF126967 ICC Codenomicon : rfc3550-rtcp-rr-sdes-rr-report-block-repeat - - - - Fix for: - DEF126965 ICC Codenomicon : rfc3550-rtcp-rr-sdes-rr-header-rc - - - - Fix for: - DEF126899 SMP: RTP does not compile on x86gcc platform - - - - Fix for: - DEF126835 mmp-rtp: WINSCW UDEB call set CName twice with SetSDESL does not leave -11 - - - - Fix for: - DEF126833 mmp-rtp: newsource event callback did not always be called in emulator - - - - Fix for: - DEF126446 SDL-RTP:RRtpsession::SendRTCPPacketL no parameter explanation - - - - Fix for: - DEF126448 SDL-RTP: see also link of RRtpSession::DontReceive() is itsself - - - - Fix for: - DEF126659 [Coverity] [UNUSED_VALUE][UNINIT] mm-protocols/rtp - - - - Fix for: - DEF126366 rtcp packet send to rtp port while remote rtcp port is not available - - - - Fix for: - DEF126028 RRtpSendPacket::SetPayloadType doesn't panic specifying PT of 128 under ARMv5 - - - - Fix for: - DEF125436 RRtpSendSource::ByeL panic with RTP-SOCKET 400 when aReason.Length%4 != 0 - - - - Fix for: - DEF125953 mmp-rtp: rrtpsession::openL should use rtp port in destination address - - - - Fix for: - DEF125880 ESock Panic when invalid Bandwidth session parameter is given. - - - - Fix for: - DEF125710 Panic codes description for RRtpSendPacket::SetPayloadType in SDL is incorrect - - - - Fix for: - DEF125425 The default value of RRtpSendSource::iAlignment is not the correct value of 1 - - - - Fix for: - DEF125376 CRtcpSessionData::iAverageRtcpSize is always 0 once SendRtcpL is called once. - - - - Real-time and best effort data flows for RTP - - - - - - - Fix for: - PDEF119270 SR packets not generated, on receiving RTP packets - - - - Fix for: - PDEF117965 Klocwork issues, NULL pointer can be used in release build mm-protocols_rtp - - - - Fix for: - DEF111868 Filiename policy warnings in SIP HL APIs and RTP components - - - - Fix for: - DEF107516 RTP Tests are failing for 9.5 Winscw Emulator - - - - Fix for: - PDEF108220 If the timeout is short and there is a timeout then your rtp stack will crash. - PDEF108221 RTP packets just disappear inside RTP stack and client application doesnt recv - PDEF106768 Symbian rtp stack crashes after a long pause in rtp packet flow - - - - Fix for: - PDEF108220 If the timeout is short and there is a timeout then your rtp stack will crash. - PDEF108221 RTP packets just disappear inside RTP stack and client application doesnt recv - PDEF106768 Symbian rtp stack crashes after a long pause in rtp packet flow - - - - Fix for: - PDEF108220 If the timeout is short and there is a timeout then your rtp stack will crash. - PDEF108221 RTP packets just disappear inside RTP stack and client application doesnt recv - PDEF106768 Symbian rtp stack crashes after a long pause in rtp packet flow - - - - PDEF104584 - Memory leak in CRtpSession::RunL - - - - GNU Make-based build system - - - - Fix for PDEF103856 Check the functionality of RtpUtils::GetNtpTime(). - - - - RRtcpSRPart::NTPTimestamp(TTime& aTime) const severely broken. - - diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/Group/mm-protocols_sip2_com.history.xml --- a/realtimenetprots/sipfw/Group/mm-protocols_sip2_com.history.xml Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,503 +0,0 @@ - - - - Session Initiation Protocol. Main signalling protocol for 3gpp. Used by phone app, multimedia and messaging app. 3 servers implied. - - - - Added Note for the following cr: - Oghma,GT0362,MS3.4,DS.843 SIP enhancements phase 3 - - - - Defect fixes: - INC136948 Improvements to CCHServer robustness - - - - Defect fixes: - DEF137132 Crashes occur if VoIP is registered when MC backup is taken (Observed S60 3.2.3) - - - - Defect fixes: - PDEF133394 SIP : when moving from 3G to 2G , Packet connection goes to CS Only - - - - Defect fixes: - PDEF133395 SIP : Etel IMSAutheticate Message goes out of scope - - - - Defect fixes: - DEF133888 [System Build]: Elfe32 warning in SIP Framework in M04835 vFuture build - - - - Defect fixes: - PDEF134513 Device behaves weirdly after registration fails to VoIP service - - - - Defect fixes: - PDEF133393 SIP Registration (Refresh) not triggered after a 2G Call - - - - Defect fixes: - DEF134108 [System Build]: GT errors due to SIP Framework in M04843 v9.5 - - - - Defect fixes: - PDEF133984 SipServer crashes if enabling two service tabs when using allatum settings over - - - - Defect fixes: - DEF133888 [System Build]: Elfe32 warning in SIP Framework in M04835 vFuture build - - - - Defect fixes: - DEF133557 [Coverity]-CHECKED_RETURN,USE_AFTER_FREE -mm-protocols/sip2 - - - - Defect fixes: - DEF133558 [Coverity]-FORWARD_NULL,RESOURCE_LEAK -mm-protocols/sip2/sip - - - - Defect fixes: - DEF133559 [Coverity]-SYMBIAN.CLEANUP_STACK -mm-protocols/sip2 - - - - Defect fixes: - INC133381 Non-deterministic behaviour of Symbian's TInetAddr - - - - Defect fixes: - DEF133138 [System Build]: Include statement not case consistent in mm-protocols_SIP2_com - - - - Defect fixes: - PDEF130653 WLAN stays connected if ICMP has been received to voice mail box unsubscribe mes - - - - Defect fixes: - DEF132597 ICCCodenomicon: SIP UAS responds on 0000 port and goes infinite loop - - - - Defect fixes: - DEF132596 ICCCodenomicon: SIP UAS responds on 65536 port and goes infinite loop - - - - Defect fixes: - DEF132485 Keyspace design for bearer specific Registration Expiry settings in cenrep - - - - Defect fixes: - DEF132486 support for data compatibility between sipprofiles.dat and cenrep profile format - - - - Defect fixes: - PDEF130652 Digest AKAv1 authentication does not work with VoiP - - - - Defect fixes: - DEF130788 [Coverity]-MISSING_BREAK,SIZECHECK,USE_AFTER_FREE-mm-protocols/sip2/ - - - - Defect fixes: - PDEF130654 Video Share settings shows deleted profiles in the selection list - - - - Defect fixes: - DEF129377 [Coverity]-SYMBIAN.CLEANUP_STACK-mm-protocols/sip2 - - - - Defect fixes: - DEF129461 Registration to VoIP service does not work in IPv4 and IPv6 dual network - - - - Defect fixes: - DEF129701 494 response not handled correctly if SIP profile does not contain credentials - - - - Defect fixes: - PDEF127679 Can not do VoIP registration after plugging back the cable to the WLAN AP - - - - Defect fixes: - DEF129655 WLAN and GPRS are simultaneous connected after roaming from GPRS to WLAN - - - - Defect fixes: - PDEF128408 Profile registration fails when a deregistration is pending for another profile - - - - Defect fixes: - PDEF127676 Incorrect inheritance order in CSigCompHandler - - - - Defect fixes: - DEF127358 Receiving INVITE with IPv6 address in Contact and c= line via IPv4 IAP - - - - Defect fixes: - DEF126882 [Coverity]-SYMBIAN.CLEANUP_STACK -mm-protocols/sip2/ - - - - Defect fixes: - DEF126880 [Coverity]-PASS_BY_VALUE -mm-protocols/sip2/ - - - - Defect fixes: - PDEF128108 UDEB version of sipprofilesrv.exe crashes - - - - Defect fixes: - DEF127309 Phone does not send Ack response to 494 Security Agreement Required - - - - Defect fixes: - DEF127121 Cloning SDP origin field with address 0.0.0.0 - - - - Defect fixes: - DEF127262 It shouldn't be possible to change the SNAP id to zero - - - - Defect fixes: - DEF125920 [coverity] - FORWARD_NULL - mm-protocols/sip2/clientresolver - - - - Defect fixes: - DEF125926 [Coverity] - SYMBIAN.CLEANUP - mm-protocols/sip2/sip/connectionmgr - - - - Defect fixes: - PDEF124332 Terminal can't receive any calls after several header with bytecode tests - - - - Defect fixes: - DEF125137 [coverity] - REVERSE_INULL - mm-protocols/sip2/sip/serverresolver - - - - Defect fixes: - DEF125090 [coverity] - NULL_RETURNS - mm-protocols/sip2/sip/sipsec/ipsecplugin - - - - Defect fixes: - DEF125138 [coverity] - REVERSE_INULL - mm-protocols/sip2/sdp - - - - Defect fixes: - DEF125139 [coverity] - CHECKED_RETURN - mm-protocols/sip2/sigcomp/sigcompengine - - - - Defect fixes: - DEF125140 [coverity] - CHECKED_RETURN - mm-protocols/sip2/profileagent - - - - Defect fixes: - DEF125106 [coverity] - NULL_RETURNS - mm-protocols/sip2/sip/connectionmgr - - - - Defect fixes: - DEF125111 [Coverity] - OVERRUN_STATIC - mm-protocols/sip2/sip/client/ - - - - Defect fixes: - DEF125136 [coverity] - USE_AFTER_FREE - mm-protocols/sip2/profileagent - - - - Defect fixes: - DEF125110 [coverity] - FORWARD_NULL - mm-protocols/sip2/sip/sipapi - - - - Defect fixes: - DEF125094 [coverity] - NULL_RETURNS - mm-protocols/sip2/sip/transactionuser - - - - Defect fixes: - DEF123023 Creating of CSIPProfileRegisty instance takes 50ms - - - - Defect fixes: - PDEF124112 Incorrect handling of some SDP attributes with syntax errors - - - - Defect fixes: - PDEF124114 Parsing Refer-To header with a semicolon in SIP-URI's user part fails - - - - Defect fixes: - PDEF124174 Incoming INVITE flood - - - - Defect fixes: - PDEF124334 SDP codec: can't clone CSdpConnectionField where IP address is 0.0.0.0 - - - - Defect fixes: - DEF124240 Digest plugin crash after registration clears cache, dialog is challenged - - - - Defect fixes: - DEF124235 SIPit22 Issue: Double hold not working with Cisco Call Manager - - - - Defect fixes: - PDEF124110 SipProfileSrv crashes under IPC fuzzing - - - - Defect fixes: - DEF124233 Creating two CSIPConnections with different IAP IDs but the same physical AP - - - - Defect fixes: - DEF122893 High severity CodeScanner warnings in SIP stack - - - - Defect fixes: - PDEF123267 Creating a CSIPConnection with IAP using a static IP fails with EUnavailable - - - - Defect fixes: - PDEF123269 SIP server crashes in Codenomicon tests when using TCP - - - - Defect fixes: - DEF122933 SIP profile registration lost if the profile is disabled during IAP migration - - - - Defect fixes: - PDEF122840 Error in SIPClient library - Native SIP stack - - - - Defect fixes: - PDEF123081 PTT call doesn't resume if network coverage is lost for long time - - - - Defect fixes: - DEF121369 Registration with SNAP does not work when startup in offline mode - - - - Defect fixes: - PDEF121899 SIPDIGEST.DLL dependency on IMUT.DLL should be broken - - - - Defect fixes: - DEF121209 App using SIP gets EProfileDeregistered in network lost case too early - - - - Defect fixes: - DEF121455 Miscellaneous(copyright, Cat F) errros in Sample App and example plugins of SIP - - - - Defect fixes: - DEF118609 SPPR_PERF: SIP Server crashes under IPC attack - - - - Defect fixes: - DEF118927 "Connection needed" prompt looped when using GPRS access point from Sip Settings - - - - Defect fixes: - PDEF119150 SIP Server crashes after 423 response to REGISTER - - - - Defect fixes: - DEF118608 Phone does not answer proxy authentication challenge when making call - - - - Defect fixes: - PDEF117335 SIP Profile parameter KSIPDigestPassword must be write-only - - - - Defect fixes: - PDEF119071 SipServer crashes with certain sequence of answers to INVITE - - - - Defect fixes: - DEF117243 Two SIP profiles, registering the second SIP profile fails - - - - Defect fixes: - PDEF118401 Incorrect state transition in SIP Connection Mgr after system state event - - - - Defect fixes: - PDEF118452 Klocwork issues, NULL pointer can be used in release build mm-protocols_sip_com - - - - Defect fixes: - DEF116133 Cloning empty sdp document crashes - - - - Defect fixes: - PDEF115951 SIP should accept Allow-header even if it ends with a comma (Allow: INVITE,) - - - - Defect fixes: - DEF115781 GPRS connection not dropped when roaming from WLAN to GPRS to WLAN - - - - Defect fixes: - DEF115806 Phone doesn't register through other APs in SNAP if fails with first AP - - - - Defect fixes: - PDEF115370 Accept-Encoding-header with an empty value is rejected - PDEF115371 Profile gets unregistered, if no answer to PUBLISH or SUBSCRIBE - PDEF115372 Handling of 200 Ok for REGISTER from Ericsson IMS failed - - - - Defect fixes: - PDEF114883 Backup/restore from PC suite not working - DEF113041 WLAN not disconnected when disconnecting from Broadvoice SIP service - - - - Defect fixes: - DEF112885 SIP profile registration status not up-to-date after roaming - between APs - DEF112603 Setting IP Differentiated Services Field changes the source port - of SIP messages - - - - Defect fixes: - DEF112830 Enabling SIP profile with a SNAP works only once - - - - Defect fixes: - DEF112756 SIP stack and SIP Client Resolver central repositories are not backed up - - - - Defect fixes: - DEF111902 PDP Context is not dropped when switching from 'Always on' to 'When needed' - - - - Defect fixes: - DEF110809 ALR does not work when no IAPs available in SNAP - DEF111014 SIP parameter transport=TLS to some SIPS-URIs - DEF111868 Filiename policy warnings in SIP HL APIs and RTP components - - - - Defect fixes: - DEF110636 Warnings generated with checksource build - DEF110816 Phone places "nat_traversal_required" to From field on MO call - DEF110810 SIP stack allows sips uri to be set to Contact header while tls is not being use - - - - Added Note for the following preq: - Oghma,GT0362,MS3.3,DS.676 SIP enhancements phase 3 - - - - Added Note for the following preq: - The Preq is 1737 MS3.2 submission - - - - Added Note for the following defects: - DEF108003 Warnings generated with checksource build - - - - Added Note for the following defects: - PDEF106564 Missing IM Tags in SIP Component - DEF106980 Upgrade the handling of String Tables - - - - Added Note for the following defects: - PDEF106564 Missing IM Tags in SIP Component - DEF106980 Upgrade the handling of String Tables - - - - Reference Doumentation for SIP_COM component missing in SOSlib - - diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrsnapmonitor.cpp --- a/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrsnapmonitor.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/AlrMonitor/src/sipalrsnapmonitor.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -489,8 +489,8 @@ void CSipAlrSnapMonitor::NotifyInitializedObservers( TUint32 aIapId, MSipAlrObserver::TEvent aEvent ) - { - for ( TInt i = 0; i < iObservers.Count(); i++ ) + { + for (TInt i = iObservers.Count() - 1; i >= 0; --i) { if ( iObservers[i].iInitialEventDone ) { @@ -508,7 +508,7 @@ // void CSipAlrSnapMonitor::NotifyNewObservers( TUint32 aIapId ) { - for ( TInt i = 0; i < iObservers.Count(); i++ ) + for ( TInt i = iObservers.Count() - 1; i >= 0; --i ) { if ( !iObservers[i].iInitialEventDone ) { diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfconnectioncontext.cpp --- a/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfconnectioncontext.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfconnectioncontext.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -366,32 +366,38 @@ // ----------------------------------------------------------------------------- // void CSIPIetfConnectionContext::IncomingResponse( - CSIPClientTransaction& aTransaction, - CSIPRegistrationBinding& aRegistration) - { - PROFILE_DEBUG1("CSIPIetfConnectionContext::IncomingResponse") - TBool handled = EFalse; + CSIPClientTransaction& aTransaction, + CSIPRegistrationBinding& aRegistration) + { + PROFILE_DEBUG1("CSIPIetfConnectionContext::IncomingResponse") + TBool handled = EFalse; - CleanIdleContexts(); + CleanIdleContexts(); - for (TInt i=0; iStatusCode() >= 300); - TInt contextCountBefore = iContexts.Count(); - - iContexts[i]->IncomingResponse(aTransaction, aRegistration, handled); - - TBool contextRemoved = (iContexts.Count() != contextCountBefore); - if (handled && !contextRemoved && isErrorResponse) - { - iContexts[i]->RetryRegistration(); - } - } - } - } + for (TInt i=0; iStatusCode() >= 300); + TInt statusCode = response->StatusCode(); + iContexts[i]->IncomingResponse(aTransaction, aRegistration, handled); + TBool contextRemoved = (iContexts.Count() != contextCountBefore); + if (handled && !contextRemoved && isErrorResponse) + { + if ( iContexts[i]->RetryTimerInUse() ) + { + iContexts[i]->RetryDeltaTimer(iContexts[i]->DelayTime(), statusCode ); + } + else + { + iContexts[i]->RetryRegistration(); + } + } + } + } + } // ----------------------------------------------------------------------------- // CSIPIetfConnectionContext::ErrorOccured diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfprofilecontext.cpp --- a/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfprofilecontext.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/IETF_Agent/src/Sipietfprofilecontext.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -440,7 +440,9 @@ AgentObserver().ProceedRegistration(*iProfile, aError) && (CurrentState() == MSIPProfileContext::ERegistrationInProgress || CurrentState() == MSIPProfileContext::ERegistered) && - (aError == KErrSIPOutboundProxyNotResponding || + (aError == K408TimeOut || + aError == K500ServerInternalError || + aError == KErrSIPOutboundProxyNotResponding || aError == KErrSIPResolvingFailure || aError == KErrTimedOut || aError == KErrSIPTransportFailure || @@ -490,6 +492,8 @@ TBool CSIPIetfProfileContext::ShouldRetryRegistration( TInt aError ) { return (aError == K503ServiceUnavailable || + aError == K408TimeOut || + aError == K500ServerInternalError || aError == KErrSIPOutboundProxyNotResponding || aError == KErrTimedOut || ((aError == KErrSIPResolvingFailure || @@ -548,38 +552,55 @@ // ----------------------------------------------------------------------------- // void CSIPIetfProfileContext::IncomingResponse( - CSIPClientTransaction& aTransaction, - CSIPRegistrationBinding& aRegistration, - TBool& aHandled) - { - if (iClientTx && iRegistration && - aTransaction==*iClientTx && aRegistration==*iRegistration) - { - PROFILE_DEBUG3("SIPIetfProfileContext::IncomingResponse", ProfileId()) - aHandled = ETrue; - const CSIPResponseElements* response = aTransaction.ResponseElements(); - if (response) - { - TUint responseCode = response->StatusCode(); - if (responseCode >= K300MultipleChoices) - { - PROFILE_DEBUG1("IETFProfileContext: registration failed") - RetryPossible(responseCode); - } - else - { - if (responseCode >= K200Ok) - { - PROFILE_DEBUG1("IETFProfileContext: registration complete") - iRetryCounter = 0; - iRetryCounterSum = 0; - Received2XXRegisterResponse(); - } - } - } - iCurrentState->ResponseReceived(*this, aTransaction); - } - } + CSIPClientTransaction& aTransaction, + CSIPRegistrationBinding& aRegistration, + TBool& aHandled) + { + if (iClientTx && iRegistration && + aTransaction==*iClientTx && aRegistration==*iRegistration) + { + PROFILE_DEBUG3("SIPIetfProfileContext::IncomingResponse", ProfileId()) + aHandled = ETrue; + const CSIPResponseElements* response = aTransaction.ResponseElements(); + TUint responseCode = response->StatusCode(); + TBool retry = EFalse; + if (response) + { + retry = RetryRegister( &aTransaction, responseCode); + if( retry ) + { + iCurrentState->ErrorOccured(*this, responseCode); + } + else + { + if (responseCode >= K300MultipleChoices) + { + PROFILE_DEBUG1("IETFProfileContext: registration failed") + RetryPossible(responseCode); + } + else + { + if (responseCode >= K200Ok) + { + PROFILE_DEBUG1("IETFProfileContext: registration complete") + iRetryCounter = 0; + iRetryCounterSum = 0; + Received2XXRegisterResponse(); + } + } + } + } + + if( retry ) + { + iCurrentState->ErrorOccured(*this, responseCode); + } + else + { + iCurrentState->ResponseReceived(*this, aTransaction); + } + } + } // ----------------------------------------------------------------------------- // CSIPIetfProfileContext::RandomPercent() diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Inc/sipphoneregistrationmonitor.h --- a/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Inc/sipphoneregistrationmonitor.h Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Inc/sipphoneregistrationmonitor.h Wed Mar 31 22:10:27 2010 +0300 @@ -1,8 +1,8 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available -* under the terms of the License "Eclipse Public License v1.0" +* under the terms of "Eclipse Public License v1.0" * which accompanies this distribution, and is available * at the URL "http://www.eclipse.org/legal/epl-v10.html". * @@ -14,7 +14,7 @@ * Description: * Name : sipphoneregistrationmonitor.h * Part of : SIP Profile Agent / SIP IMS Agent -* Version : %version: 4 % +* Version : %version: 2 % * */ diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Inc/sipphoneregistrationobserver.h --- a/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Inc/sipphoneregistrationobserver.h Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Inc/sipphoneregistrationobserver.h Wed Mar 31 22:10:27 2010 +0300 @@ -1,8 +1,8 @@ /* -* Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available -* under the terms of the License "Eclipse Public License v1.0" +* under the terms of "Eclipse Public License v1.0" * which accompanies this distribution, and is available * at the URL "http://www.eclipse.org/legal/epl-v10.html". * @@ -14,7 +14,7 @@ * Description: * Name : sipphoneregistrationobserver.h * Part of : SIP Profile Agent / SIP IMS Agent -* Version : %version: 3 % +* Version : %version: 2 % * */ diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/sipimsprofileagent.cpp --- a/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/sipimsprofileagent.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/sipimsprofileagent.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -886,7 +886,7 @@ PROFILE_DEBUG1("CSIPIMSProfileAgent::DeleteAllProfilesInWaitingQue") CSIPConcreteProfile* profile = NULL; - for (TInt i=0; i< iWaitForRegisteringArray.Count();i++) + for (TInt i = iWaitForRegisteringArray.Count() -1; i >= 0; --i) { profile = iWaitForRegisteringArray[i]; if (profile) @@ -1345,7 +1345,7 @@ { TBool found = EFalse; CSIPConcreteProfile* profile = NULL; - for (TInt i=0; i< aProfileArray.Count() && !found; i++) + for (TInt i= aProfileArray.Count() -1; i >= 0 && !found; --i) { CSIPConcreteProfile* tmp = aProfileArray[ i ]; found = ( tmp->Id() == aSIPConcreteProfile.Id() ); diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/sipphoneregistrationmonitor.cpp --- a/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/sipphoneregistrationmonitor.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/IMS_Agent/Src/sipphoneregistrationmonitor.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -1,7 +1,7 @@ -// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of the License "Eclipse Public License v1.0" +// under the terms of "Eclipse Public License v1.0" // which accompanies this distribution, and is available // at the URL "http://www.eclipse.org/legal/epl-v10.html". // @@ -13,11 +13,10 @@ // Description: // Name : sipphoneregistrationmonitor.cpp // Part of : SIP Profile Agent / IMS Agent -// Version : %version: 6 % +// Version : %version: 2 % // - #include "sipphoneregistrationmonitor.h" #include "sipphoneregistrationobserver.h" diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp --- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/SipProfileServerCore.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -998,7 +998,7 @@ { status = CSIPConcreteProfile::EUnregistrationInProgress; } - if(FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn)) + if(FeatureManager::FeatureSupported( KFeatureIdFfSipApnSwitching)) { if(item->LatestProfile().IapId()!= item->UsedProfile().IapId()) { @@ -1028,7 +1028,7 @@ } - if(FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn) + if(FeatureManager::FeatureSupported( KFeatureIdFfSipApnSwitching) && item->IsApnSwitchEnabled()) { PROFILE_DEBUG1("CSIPProfileServerCore::UpdateRegistrationL, SwichEnabled") @@ -1076,7 +1076,7 @@ && item->IsVpnInUse()); const CSIPConcreteProfile* profile = Profile(aProfileId); - if(FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn ) + if(FeatureManager::FeatureSupported( KFeatureIdFfSipApnSwitching ) && CheckApnSwitchEnabledL( *profile ) && !item->IsRfsInprogress() && !isVpnInUse ) { PROFILE_DEBUG1("CSIPProfileServerCore::EnableProfileL, SwichEnabled") @@ -1174,7 +1174,7 @@ { TBool enabled(EFalse); TRAPD(error, enabled = CheckApnSwitchEnabledL(item->Profile())) - if(FeatureManager::FeatureSupported( KFeatureIdFfImsDeregistrationInVpn ) + if(FeatureManager::FeatureSupported( KFeatureIdFfSipApnSwitching ) &&enabled && !error) { PROFILE_DEBUG1("CSIPProfileServerCore::RegisterProfiles, SwichEnabled") diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrmigrationcontroller.cpp --- a/realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrmigrationcontroller.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/ProfileAgent/Server/Src/sipalrmigrationcontroller.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -331,9 +331,12 @@ aAllowed, iObservers.Count()) - //Get the initial count of Observers - TInt count = iObservers.Count();; - for (TInt i = 0; i < count; ++i) + // It may be possible that Profile Could not be registered (if migration is allowed). In such cases error handling + // for profile will be done, which will move Profile into Un-registered State + // As the profile moves into Un-registered state, profile is detached from + // the list of Observer which AlrMigrationController maintains. This dynamically + // changes the Observer count. + for (TInt i = iObservers.Count() -1; i >= 0; --i) { MSipAlrMigrationObserver& obs = iObservers[i].iObserver; TRAPD(err, if (aAllowed) @@ -350,15 +353,6 @@ PROFILE_DEBUG4("MigrationIs(Dis)AllowedL leaves err,index", err, i) obs.ErrorOccurred(err); } - // Check the Observer Count. It may be possible that Profile Could Not - // be registered (if migration is allowed). In such cases error handling - // for profile will be done, which will move Profile into Un-registered State - // As the profile moves into Un-registered state, profile is detached from - // the list of Observer which AlrMigrationController maintains. This dynamically - // changes the Observer count. - if(iObservers.Count() < count) - i--; - count = iObservers.Count(); } } diff -r dc4cddf5f2f8 -r c2e8c8b73582 realtimenetprots/sipfw/SIP/NetworkMonitor/src/CNetworkManager.cpp --- a/realtimenetprots/sipfw/SIP/NetworkMonitor/src/CNetworkManager.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/realtimenetprots/sipfw/SIP/NetworkMonitor/src/CNetworkManager.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -410,7 +410,8 @@ aObjectName.AppendNum( static_cast( realIapId ) ); } #endif - + __SIP_INT_LOG1( "CNetworkManager::GetServiceTypeAndObjectNameL end realIapID =", realIapId ) + return realIapId; } @@ -436,37 +437,39 @@ CCDVPNServiceRecord* serviceRecord = static_cast( aIapRecord.iService.iLinkedRecord ); - - serviceRecord->iServiceIAP.LoadL( aCommsDat ); - - // It is valid to have 0 for iServiceIAP when the SNAP is configured for VPN IAP. - // So treat this is a valid configuaration and fill the aServiceType to NULL which usually contains the IAP service type(like LAN Service, Outgoing GPRS etc ) - if (serviceRecord->iServiceIAP == 0) - { - aServiceType.Copy(_L8("")); - return (serviceRecord->iServiceIAP); - } - - if ( !serviceRecord->iServiceIAP.iLinkedRecord ) - { - // Ownership of created record is transferred - serviceRecord->iServiceIAP.iLinkedRecord = - static_cast( - CCDRecordBase::RecordFactoryL( KCDTIdIAPRecord ) ); - serviceRecord->iServiceIAP.iLinkedRecord->SetRecordId( - serviceRecord->iServiceIAP ); - - serviceRecord->iServiceIAP.iLinkedRecord->LoadL( aCommsDat ); - } - CCDIAPRecord* iapRecord = - static_cast( serviceRecord->iServiceIAP.iLinkedRecord ); - - // We need service type info of the "real" iap - GetServiceTypeL( *iapRecord, aServiceType ); - - return iapRecord->RecordId(); - } + TRAPD(err,serviceRecord->iServiceIAP.LoadL( aCommsDat )); + if(KErrNone != err ) + { + //Its valid to not have iServiceIAP record, due to introduction of ServiceSNAP for the VPN with Snap + __SIP_INT_LOG1( "CNetworkManager::HandleVPNServiceL CCDVPNServiceRecord->iServiceIAP LoadL failed with error=", err) + aServiceType.Copy(_L8("")); + return 0; + + } + else + { + if ( !serviceRecord->iServiceIAP.iLinkedRecord ) + { + // Ownership of created record is transferred + serviceRecord->iServiceIAP.iLinkedRecord = + static_cast( + CCDRecordBase::RecordFactoryL( KCDTIdIAPRecord ) ); + serviceRecord->iServiceIAP.iLinkedRecord->SetRecordId( + serviceRecord->iServiceIAP ); + + serviceRecord->iServiceIAP.iLinkedRecord->LoadL( aCommsDat ); + } + + + CCDIAPRecord* iapRecord = + static_cast( serviceRecord->iServiceIAP.iLinkedRecord ); + + // We need service type info of the "real" iap + GetServiceTypeL( *iapRecord, aServiceType ); + return iapRecord->RecordId(); + } + } // ----------------------------------------------------------------------------- // CNetworkManager::GetServiceTypeL diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsipsettingsui/src/sipsettingsmodel.cpp --- a/sipplugins/sippsipsettingsui/src/sipsettingsmodel.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/sipplugins/sippsipsettingsui/src/sipsettingsmodel.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -112,6 +112,8 @@ { __GSLOGSTRING1("CSIPSettingsModel::SetDefaultProfileL index: %d", aIndex) TRAPD(err, iHandler->SetDefaultProfileL( aIndex )); + if( err != KErrNone ) + { if ( err == KErrInUse ) { HBufC* txtErr = StringLoader::LoadLC( R_QTN_SIP_ERROR_PROFILE_USED ); @@ -123,6 +125,7 @@ { User::Leave( err ); } + } } // ----------------------------------------------------------------------------- diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsystemstatemonitor/group/sipsystemstatemonitor.mmp --- a/sipplugins/sippsystemstatemonitor/group/sipsystemstatemonitor.mmp Mon Mar 15 12:42:05 2010 +0200 +++ b/sipplugins/sippsystemstatemonitor/group/sipsystemstatemonitor.mmp Wed Mar 31 22:10:27 2010 +0300 @@ -26,7 +26,6 @@ SOURCE sipsystemstatemonitorimpl.cpp SOURCE sipsystemstatemonitorao.cpp SOURCE sipsnapavailabilitymonitor.cpp -SOURCE CSystemStateConnUsagePermissionMonitor.cpp SOURCE siprfsmonitorao.cpp SOURCE sipdevicestateaware.cpp SOURCE sipvpnmonitorao.cpp diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsystemstatemonitor/inc/CSystemStateConnUsagePermissionMonitor.h --- a/sipplugins/sippsystemstatemonitor/inc/CSystemStateConnUsagePermissionMonitor.h Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#ifndef CSYSTEMSTATECONNUSAGEPERMISSIONMONITOR_H -#define CSYSTEMSTATECONNUSAGEPERMISSIONMONITOR_H - -// INCLUDES - -#include - -// FORWARD DECLARATIONS -class MSystemStateConnUsagePermissionObserver; -class CRepository; - -// CLASS DECLARATION - -/** - * Class for subscribing events from secure backup server. - */ -class CSystemStateConnUsagePermissionMonitor : public CActive - { - public: - - /** - * Two-phased constructor. - * @return new instance - */ - static CSystemStateConnUsagePermissionMonitor* NewL(); - - /** - * Destructor - */ - ~CSystemStateConnUsagePermissionMonitor(); - - /** - * Add obsever - */ - void AddObserverL( MSystemStateConnUsagePermissionObserver& aObserver ); - - /** - * Remove observer - */ - void RemoveObserver( MSystemStateConnUsagePermissionObserver& aObserver ); - - public: // From CActive - - void RunL(); - - void DoCancel(); - - TInt RunError( TInt aError ); - - public: // new functions - - TInt CurrentUsagePermission(); - - private: - - CSystemStateConnUsagePermissionMonitor(); - void ConstructL (); - - private: - - void IssueMonitoringL(); - TBool TranslateConnectionAllowedValue( TInt aValue ); - - private: - - TInt iCurrentUsagePermission; - RPointerArray iObservers; - CRepository* iRepository; - -#ifdef CPPUNIT_TEST - friend class CSipSystemStateMonitorImplTest; -#endif - - }; - -#endif diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsystemstatemonitor/inc/MSystemStateConnUsagePermissionObserver.h --- a/sipplugins/sippsystemstatemonitor/inc/MSystemStateConnUsagePermissionObserver.h Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - -#ifndef MSYSTEMSTATECONNUSAGEPERMISSIONOBSERVER_H -#define MSYSTEMSTATECONNUSAGEPERMISSIONOBSERVER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -// CLASS DEFINITION -/** - * Callback interface for receiving connection usage permission change events. - * - */ -class MSystemStateConnUsagePermissionObserver - { - public: // Abstract methods - - virtual void UsagePermissionChanged( TBool aPermissionToUse, - TInt aError ) = 0; - - }; - -#endif // MSYSTEMSTATECONNUSAGEPERMISSIONOBSERVER_H - diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsystemstatemonitor/inc/sipsnapavailabilitymonitor.h --- a/sipplugins/sippsystemstatemonitor/inc/sipsnapavailabilitymonitor.h Mon Mar 15 12:42:05 2010 +0200 +++ b/sipplugins/sippsystemstatemonitor/inc/sipsnapavailabilitymonitor.h Wed Mar 31 22:10:27 2010 +0300 @@ -19,7 +19,6 @@ #define CSIPSNAPAVAILABILITYMONITOR_H // INCLUDES -#include "MSystemStateConnUsagePermissionObserver.h" #include #include #include @@ -33,8 +32,7 @@ */ class CSipSnapAvailabilityMonitor : public CActive, - public MConnectionMonitorObserver, - public MSystemStateConnUsagePermissionObserver + public MConnectionMonitorObserver { public: // Constructors and destructor @@ -47,7 +45,6 @@ */ static CSipSnapAvailabilityMonitor* NewL( TUint32 aSnapId, - TBool aPermissionToUseNetwork, MSipSystemStateObserver& aObserver ); /** @@ -58,8 +55,7 @@ * @return An initialized instance of this class. */ static CSipSnapAvailabilityMonitor* NewLC( - TUint32 aSnapId, - TBool aPermissionToUseNetwork, + TUint32 aSnapId, MSipSystemStateObserver& aObserver ); /// Destructor @@ -73,12 +69,8 @@ public: // From MConnectionMonitorObserver - void EventL( const CConnMonEventBase &aConnMonEvent ); - - public: // from MSystemStateConnUsagePermissionObserver - - void UsagePermissionChanged( TBool aPermissionToUse, TInt aError ); - + void EventL( const CConnMonEventBase &aConnMonEvent ); + public: // New functions TUint32 SnapId() const; @@ -93,9 +85,7 @@ private: // Constructors - CSipSnapAvailabilityMonitor( - TUint32 aSnapId, - TBool aPermissionToUseNetwork ); + CSipSnapAvailabilityMonitor( TUint32 aSnapId ); void ConstructL( MSipSystemStateObserver& aObserver ); @@ -107,16 +97,13 @@ void NotifyObservers() const; - TBool SetCurrentState( - TBool aPermissionToUseNetwork, - TBool aSnapAvailable ); + TBool SetCurrentState( TBool aSnapAvailable ); TBool CanSnapBeUsed() const; private: // Data TUint32 iSnapId; - TBool iPermissionToUseNetwork; TBool iSnapAvailable; // Observers not owned RPointerArray iObservers; diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsystemstatemonitor/inc/sipsystemstatemonitorimpl.h --- a/sipplugins/sippsystemstatemonitor/inc/sipsystemstatemonitorimpl.h Mon Mar 15 12:42:05 2010 +0200 +++ b/sipplugins/sippsystemstatemonitor/inc/sipsystemstatemonitorimpl.h Wed Mar 31 22:10:27 2010 +0300 @@ -21,12 +21,10 @@ // INCLUDES #include "sipsystemstatemonitorao.h" #include "sipsnapavailabilitymonitor.h" -#include "MSystemStateConnUsagePermissionObserver.h" #include #include // FORWARD DECLARATIONS -class CSystemStateConnUsagePermissionMonitor; class CSipDeviceStateAware; class CSipRfsMonitorAo; class CSipVpnMonitorAo; @@ -77,7 +75,6 @@ CSipSystemStateMonitorAo* iMonitorAo; RPointerArray iSnapMonitors; - CSystemStateConnUsagePermissionMonitor* iUsagePermissionMonitor; CSipRfsMonitorAo* iRfsMonitor; CSipDeviceStateAware* iSipDeviceAwareObject; diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsystemstatemonitor/src/CSystemStateConnUsagePermissionMonitor.cpp --- a/sipplugins/sippsystemstatemonitor/src/CSystemStateConnUsagePermissionMonitor.cpp Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,214 +0,0 @@ -/* -* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include -#include -#include "CSystemStateConnUsagePermissionMonitor.h" -#include "MSystemStateConnUsagePermissionObserver.h" - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::NewL -// ----------------------------------------------------------------------------- -// -CSystemStateConnUsagePermissionMonitor* -CSystemStateConnUsagePermissionMonitor::NewL() - { - CSystemStateConnUsagePermissionMonitor* self = - new ( ELeave ) CSystemStateConnUsagePermissionMonitor(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::CSystemStateConnUsagePermissionMonitor -// ----------------------------------------------------------------------------- -// -CSystemStateConnUsagePermissionMonitor::CSystemStateConnUsagePermissionMonitor() - : CActive( EPriorityStandard ), - iCurrentUsagePermission( EFalse ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::ConstructL -// ----------------------------------------------------------------------------- -// -void CSystemStateConnUsagePermissionMonitor::ConstructL() - { - iRepository = CRepository::NewL( KCRUidCoreApplicationUIs ); - IssueMonitoringL(); - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::~CSystemStateConnUsagePermissionMonitor -// ----------------------------------------------------------------------------- -// -CSystemStateConnUsagePermissionMonitor::~CSystemStateConnUsagePermissionMonitor() - { - iObservers.Close(); - Cancel(); - delete iRepository; - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::RunL -// ----------------------------------------------------------------------------- -// -void CSystemStateConnUsagePermissionMonitor::RunL() - { - TInt status( iStatus.Int() ); - - TInt previousPermission = iCurrentUsagePermission; - - CurrentUsagePermission(); - - // Strangely cenrep may complete the request with positive value, - // do not interpret it as an error. - if ( status >= KErrNone ) - { - status = KErrNone; - IssueMonitoringL(); - } - - if ( previousPermission != iCurrentUsagePermission ) - { - for ( TInt i = iObservers.Count()-1; i >= 0; i-- ) - { - iObservers[i]->UsagePermissionChanged( iCurrentUsagePermission, - status ); - } - } - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::DoCancel -// ----------------------------------------------------------------------------- -// -void CSystemStateConnUsagePermissionMonitor::DoCancel() - { - iRepository->NotifyCancelAll(); - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::RunError -// ----------------------------------------------------------------------------- -// -TInt CSystemStateConnUsagePermissionMonitor::RunError( TInt aError ) - { - for ( TInt i = iObservers.Count()-1; i >= 0; i-- ) - { - iObservers[i]->UsagePermissionChanged( iCurrentUsagePermission, - aError ); - } - if ( aError != KErrNoMemory ) - { - return KErrNone; - } - return aError; - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::CurrentUsagePermission -// ----------------------------------------------------------------------------- -// -TInt CSystemStateConnUsagePermissionMonitor::CurrentUsagePermission() - { - TInt value( KErrNotFound ); - TInt err = iRepository->Get( KCoreAppUIsNetworkConnectionAllowed, value ); - if ( err == KErrNone) - { - iCurrentUsagePermission = TranslateConnectionAllowedValue( value ); - } - else - { - iCurrentUsagePermission = err; - } - return iCurrentUsagePermission; - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::IssueMonitoringL -// ----------------------------------------------------------------------------- -// -void CSystemStateConnUsagePermissionMonitor::IssueMonitoringL() - { - if ( !IsActive() ) - { - User::LeaveIfError( - iRepository->NotifyRequest( KCoreAppUIsNetworkConnectionAllowed, - iStatus ) ); - SetActive(); - } - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::TranslateConnectionAllowedValue -// ----------------------------------------------------------------------------- -// -TBool CSystemStateConnUsagePermissionMonitor::TranslateConnectionAllowedValue( - TInt aValue ) - { - TBool retVal( EFalse ); - switch ( aValue ) - { - case ECoreAppUIsNetworkConnectionNotAllowed: - { - retVal = EFalse; - break; - } - case ECoreAppUIsNetworkConnectionAllowed: - { - retVal = ETrue; - break; - } - default: - { - break; - } - } - return retVal; - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::AddObserverL -// ----------------------------------------------------------------------------- -// -void CSystemStateConnUsagePermissionMonitor::AddObserverL( - MSystemStateConnUsagePermissionObserver& aObserver ) - { - iObservers.InsertInAddressOrderL( &aObserver ); - } - -// ----------------------------------------------------------------------------- -// CSystemStateConnUsagePermissionMonitor::RemoveObserver -// ----------------------------------------------------------------------------- -// -void CSystemStateConnUsagePermissionMonitor::RemoveObserver( - MSystemStateConnUsagePermissionObserver& aObserver ) - { - TInt index = iObservers.Find( &aObserver ); - if ( index >= 0 ) - { - iObservers.Remove( index ); - } - } - -// End of file diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsystemstatemonitor/src/sipsnapavailabilitymonitor.cpp --- a/sipplugins/sippsystemstatemonitor/src/sipsnapavailabilitymonitor.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/sipplugins/sippsystemstatemonitor/src/sipsnapavailabilitymonitor.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -25,12 +25,11 @@ // CSipSnapAvailabilityMonitor* CSipSnapAvailabilityMonitor::NewL( TUint32 aSnapId, - TBool aPermissionToUseNetwork, MSipSystemStateObserver& aObserver ) { CSipSnapAvailabilityMonitor* self = CSipSnapAvailabilityMonitor::NewLC( - aSnapId, aPermissionToUseNetwork, aObserver ); + aSnapId, aObserver ); CleanupStack::Pop( self ); return self; } @@ -41,12 +40,10 @@ // CSipSnapAvailabilityMonitor* CSipSnapAvailabilityMonitor::NewLC( TUint32 aSnapId, - TBool aPermissionToUseNetwork, MSipSystemStateObserver& aObserver ) { CSipSnapAvailabilityMonitor* self = - new( ELeave ) CSipSnapAvailabilityMonitor( - aSnapId, aPermissionToUseNetwork ); + new( ELeave ) CSipSnapAvailabilityMonitor( aSnapId ); CleanupStack::PushL( self ); self->ConstructL( aObserver ); return self; @@ -57,11 +54,9 @@ // ----------------------------------------------------------------------------- // CSipSnapAvailabilityMonitor::CSipSnapAvailabilityMonitor( - TUint32 aSnapId, - TBool aPermissionToUseNetwork ) + TUint32 aSnapId) : CActive( EPriorityStandard ), iSnapId( aSnapId ), - iPermissionToUseNetwork( aPermissionToUseNetwork ), iIsConnected( EFalse ) { CActiveScheduler::Add( this ); @@ -144,7 +139,7 @@ TBool snapAvailable = IsSnapAvailable( event.SNAPAvailability(), iSnapId ); - if ( SetCurrentState( iPermissionToUseNetwork, snapAvailable ) ) + if ( SetCurrentState( snapAvailable ) ) { NotifyObservers(); } @@ -212,20 +207,6 @@ } // ----------------------------------------------------------------------------- -// CSipSnapAvailabilityMonitor::UsagePermissionChanged -// ----------------------------------------------------------------------------- -// -void CSipSnapAvailabilityMonitor::UsagePermissionChanged( - TBool aPermissionToUse, - TInt /*aError*/ ) - { - if ( SetCurrentState( aPermissionToUse, iSnapAvailable ) ) - { - NotifyObservers(); - } - } - -// ----------------------------------------------------------------------------- // CSipSnapAvailabilityMonitor::NotifyObservers // ----------------------------------------------------------------------------- // @@ -270,16 +251,10 @@ // CSipSnapAvailabilityMonitor::SetCurrentState // ----------------------------------------------------------------------------- // -TBool CSipSnapAvailabilityMonitor::SetCurrentState( - TBool aPermissionToUseNetwork, +TBool CSipSnapAvailabilityMonitor::SetCurrentState( TBool aSnapAvailable ) { TBool updated( EFalse ); - if ( aPermissionToUseNetwork != iPermissionToUseNetwork ) - { - iPermissionToUseNetwork = aPermissionToUseNetwork; - updated = ETrue; - } if ( aSnapAvailable != iSnapAvailable ) { iSnapAvailable = aSnapAvailable; @@ -294,7 +269,7 @@ // TBool CSipSnapAvailabilityMonitor::CanSnapBeUsed() const { - return ( iSnapAvailable && iPermissionToUseNetwork ); + return ( iSnapAvailable ); } // End of File diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipplugins/sippsystemstatemonitor/src/sipsystemstatemonitorimpl.cpp --- a/sipplugins/sippsystemstatemonitor/src/sipsystemstatemonitorimpl.cpp Mon Mar 15 12:42:05 2010 +0200 +++ b/sipplugins/sippsystemstatemonitor/src/sipsystemstatemonitorimpl.cpp Wed Mar 31 22:10:27 2010 +0300 @@ -18,7 +18,6 @@ // INCLUDE FILES #include "sipsystemstatemonitorimpl.h" -#include "CSystemStateConnUsagePermissionMonitor.h" #include "sipdevicestateaware.h" #include "siprfsmonitorao.h" #include "sipvpnmonitorao.h" @@ -45,8 +44,6 @@ void CSipSystemStateMonitorImpl::ConstructL() { iMonitorAo = CSipSystemStateMonitorAo::NewL(); - iUsagePermissionMonitor = - CSystemStateConnUsagePermissionMonitor::NewL(); iSipDeviceAwareObject = CSipDeviceStateAware::NewL(); } @@ -73,7 +70,6 @@ delete iMonitorAo; iSnapMonitors.ResetAndDestroy(); - delete iUsagePermissionMonitor; delete iRfsMonitor; delete iSipDeviceAwareObject; } @@ -106,12 +102,8 @@ CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); if ( !monitor ) { - TInt permissionToUseNetwork = - iUsagePermissionMonitor->CurrentUsagePermission(); - User::LeaveIfError( permissionToUseNetwork ); monitor = CSipSnapAvailabilityMonitor::NewLC( - aObjectId, permissionToUseNetwork, aObserver ); - iUsagePermissionMonitor->AddObserverL( *monitor ); + aObjectId, aObserver ); iSnapMonitors.AppendL( monitor ); CleanupStack::Pop( monitor ); } @@ -159,8 +151,7 @@ { CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); if ( monitor ) - { - iUsagePermissionMonitor->RemoveObserver( *monitor ); + { monitor->RemoveObserver( aObserver ); if ( !monitor->HasObservers() ) { @@ -200,16 +191,8 @@ else if ( aVariable == ESnapAvailability ) { CSipSnapAvailabilityMonitor* monitor = FindSnapMonitorById( aObjectId ); - if ( monitor ) - { - TInt permissionToUseNetwork = - iUsagePermissionMonitor->CurrentUsagePermission(); - if ( permissionToUseNetwork < 0 ) - { - return permissionToUseNetwork; - } - return permissionToUseNetwork && monitor->SnapAvailability(); - } + if ( monitor ) + return monitor->SnapAvailability(); } else if ( aVariable == ERfsState ) { diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipproviderplugins/sipprovider/sipconnectionplugins/Documentation/sipproviders.eap Binary file sipproviderplugins/sipprovider/sipconnectionplugins/Documentation/sipproviders.eap has changed diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipproviderplugins/sipprovider/sipconnectionplugins/group/mm-protocols_sipproviders.history.xml --- a/sipproviderplugins/sipprovider/sipconnectionplugins/group/mm-protocols_sipproviders.history.xml Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ - - - - Provides connection provision at the network layer. - - - - Defect fixes: - DEF133288 [SystemBuild]: Elf2e32 Warning SIPConnectionPlugins in M04816vFuture with ARMV7 - - - - Defect fixes: - DEF131783 Functionality moved from SCPRStates to PRStates namespace - - - - Defect fixes: - PDEF129789 SMP: sipproviders doesn't compile for the x86gcc platform - - - - Defect fixes: - DEF130036 SIP Providers possible problem activity... - - - - Mesh Machine Productisation - - diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipproviderplugins/sipprovider/sipdummyprt/group/mm-protocols_sipdummyprt.history.xml --- a/sipproviderplugins/sipprovider/sipdummyprt/group/mm-protocols_sipdummyprt.history.xml Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ - - - - - Added note for: -DEF109829 GTC Sip iby errors - - - Provides connection provision at the network layer. - - diff -r dc4cddf5f2f8 -r c2e8c8b73582 sipproviderplugins/sipprovider/sipstatemachine/group/mm-protocols_sipstatemachine.history.xml --- a/sipproviderplugins/sipprovider/sipstatemachine/group/mm-protocols_sipstatemachine.history.xml Mon Mar 15 12:42:05 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ - - - - Provides connection provision at the network layer. - - - - Defect fixes: - DEF126882 [Coverity]-SYMBIAN.CLEANUP_STACK -mm-protocols/sip2/ - - - - Defect fixes: - DEF126880 [Coverity]-PASS_BY_VALUE -mm-protocols/sip2/ - - - - Defect fixes: - DEF125315 [sip]RSubconnection::Start() doesn't return error when 400 or 404 is received. - - - - Defect fixes: - DEF125120 [coverity] - REVERSE_INULL - mm-protocols/sipprovengine/sipstatemachine - - - - Defect fixes: - DEF125121 [coverity] - UNINIT - mm-protocols/sipprovengine/sipstatemachine - - - - Defect fixes: - DEF124879 Cannot send INVITE with SDP parameter using SIP high level API. - - - - Added Note for the following defects: - DEF108003 Warnings generated with checksource build - - - - GNU Make-based build system - -