Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/release-v0.6.11'
Browse files Browse the repository at this point in the history
  • Loading branch information
manuroe committed Jul 26, 2016
2 parents 39fc3e5 + 002873f commit ba8433e
Show file tree
Hide file tree
Showing 15 changed files with 988 additions and 42 deletions.
17 changes: 16 additions & 1 deletion CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
Changes in Matrix iOS SDK in 0.6.11 (2016-07-26)
================================================

Improvements:
* MXCall: Added audioMuted and videoMuted properties.
* Call: the SDK is now able to send local ICE candidates.
* Integration of libjingle/PeerConnection call stack (see MXJingleCall).

Bug fixes:
* MXCallManager: Do not show the call screen when the call is initiated by the same user but from another device.
* MXCallManager: Hide the call screen when the user answers an incoming call from another device.

Breaks:
* MXCallStackCall: two new properties (audioMuted and videoMuted) and one new delegate method (onICECandidateWithSdpMid).

Changes in Matrix iOS SDK in 0.6.10 (2016-07-15)
===============================================
================================================

Improvements:
* MXRestClient: Add API to add/remove a room alias.
Expand Down
4 changes: 2 additions & 2 deletions MatrixSDK.podspec
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|

s.name = "MatrixSDK"
s.version = "0.6.10"
s.version = "0.6.11"
s.summary = "The iOS SDK to build apps compatible with Matrix (http://www.matrix.org)"

s.description = <<-DESC
Expand All @@ -19,7 +19,7 @@ Pod::Spec.new do |s|

s.platform = :ios, "7.0"

s.source = { :git => "https://github.com/matrix-org/matrix-ios-sdk.git", :tag => "v0.6.10" }
s.source = { :git => "https://github.com/matrix-org/matrix-ios-sdk.git", :tag => "v0.6.11" }
s.source_files = "MatrixSDK", "MatrixSDK/**/*.{h,m}"
s.resources = "MatrixSDK/Data/Store/MXCoreDataStore/*.xcdatamodeld"

Expand Down
32 changes: 32 additions & 0 deletions MatrixSDK.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
323B2B001BCE9B6700B11F34 /* MXCoreDataEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 323B2AFC1BCE9B6700B11F34 /* MXCoreDataEvent.h */; };
323B2B011BCE9B6700B11F34 /* MXCoreDataEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 323B2AFD1BCE9B6700B11F34 /* MXCoreDataEvent.m */; };
323C5A081A70E53500FB0549 /* MXToolsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 323C5A071A70E53500FB0549 /* MXToolsTests.m */; };
323D299A1D426F7000A80BE4 /* MXJingleVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = 323D29981D426F7000A80BE4 /* MXJingleVideoView.h */; };
323D299B1D426F7000A80BE4 /* MXJingleVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 323D29991D426F7000A80BE4 /* MXJingleVideoView.m */; };
323E0C571A2F6E7D00A31D73 /* MXRoomPowerLevels.h in Headers */ = {isa = PBXBuildFile; fileRef = 323E0C551A2F6E7D00A31D73 /* MXRoomPowerLevels.h */; };
323E0C581A2F6E7D00A31D73 /* MXRoomPowerLevels.m in Sources */ = {isa = PBXBuildFile; fileRef = 323E0C561A2F6E7D00A31D73 /* MXRoomPowerLevels.m */; };
323E0C5B1A306D7A00A31D73 /* MXEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = 323E0C591A306D7A00A31D73 /* MXEvent.h */; };
Expand Down Expand Up @@ -101,6 +103,10 @@
329571931B0240CE00ABB3BA /* MXVoIPTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 329571921B0240CE00ABB3BA /* MXVoIPTests.m */; };
329571991B024D2B00ABB3BA /* MXMockCallStack.m in Sources */ = {isa = PBXBuildFile; fileRef = 329571961B024D2B00ABB3BA /* MXMockCallStack.m */; };
3295719A1B024D2B00ABB3BA /* MXMockCallStackCall.m in Sources */ = {isa = PBXBuildFile; fileRef = 329571981B024D2B00ABB3BA /* MXMockCallStackCall.m */; };
329B2ABF1D3FB01D002D546F /* MXJingleCallStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 329B2ABB1D3FB01D002D546F /* MXJingleCallStack.h */; };
329B2AC01D3FB01D002D546F /* MXJingleCallStack.m in Sources */ = {isa = PBXBuildFile; fileRef = 329B2ABC1D3FB01D002D546F /* MXJingleCallStack.m */; };
329B2AC11D3FB01D002D546F /* MXJingleCallStackCall.h in Headers */ = {isa = PBXBuildFile; fileRef = 329B2ABD1D3FB01D002D546F /* MXJingleCallStackCall.h */; };
329B2AC21D3FB01D002D546F /* MXJingleCallStackCall.m in Sources */ = {isa = PBXBuildFile; fileRef = 329B2ABE1D3FB01D002D546F /* MXJingleCallStackCall.m */; };
329FB1751A0A3A1600A5E88E /* MXRoomMember.h in Headers */ = {isa = PBXBuildFile; fileRef = 329FB1731A0A3A1600A5E88E /* MXRoomMember.h */; };
329FB1761A0A3A1600A5E88E /* MXRoomMember.m in Sources */ = {isa = PBXBuildFile; fileRef = 329FB1741A0A3A1600A5E88E /* MXRoomMember.m */; };
329FB1791A0A74B100A5E88E /* MXTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 329FB1771A0A74B100A5E88E /* MXTools.h */; };
Expand Down Expand Up @@ -207,6 +213,8 @@
323B2AFC1BCE9B6700B11F34 /* MXCoreDataEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MXCoreDataEvent.h; path = MatrixSDK/Data/Store/MXCoreDataStore/MXCoreDataEvent.h; sourceTree = SOURCE_ROOT; };
323B2AFD1BCE9B6700B11F34 /* MXCoreDataEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MXCoreDataEvent.m; path = MatrixSDK/Data/Store/MXCoreDataStore/MXCoreDataEvent.m; sourceTree = SOURCE_ROOT; };
323C5A071A70E53500FB0549 /* MXToolsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXToolsTests.m; sourceTree = "<group>"; };
323D29981D426F7000A80BE4 /* MXJingleVideoView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXJingleVideoView.h; sourceTree = "<group>"; };
323D29991D426F7000A80BE4 /* MXJingleVideoView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXJingleVideoView.m; sourceTree = "<group>"; };
323E0C551A2F6E7D00A31D73 /* MXRoomPowerLevels.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXRoomPowerLevels.h; sourceTree = "<group>"; };
323E0C561A2F6E7D00A31D73 /* MXRoomPowerLevels.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXRoomPowerLevels.m; sourceTree = "<group>"; };
323E0C591A306D7A00A31D73 /* MXEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXEvent.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -263,6 +271,10 @@
329571961B024D2B00ABB3BA /* MXMockCallStack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXMockCallStack.m; sourceTree = "<group>"; };
329571971B024D2B00ABB3BA /* MXMockCallStackCall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXMockCallStackCall.h; sourceTree = "<group>"; };
329571981B024D2B00ABB3BA /* MXMockCallStackCall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXMockCallStackCall.m; sourceTree = "<group>"; };
329B2ABB1D3FB01D002D546F /* MXJingleCallStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXJingleCallStack.h; sourceTree = "<group>"; };
329B2ABC1D3FB01D002D546F /* MXJingleCallStack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXJingleCallStack.m; sourceTree = "<group>"; };
329B2ABD1D3FB01D002D546F /* MXJingleCallStackCall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXJingleCallStackCall.h; sourceTree = "<group>"; };
329B2ABE1D3FB01D002D546F /* MXJingleCallStackCall.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXJingleCallStackCall.m; sourceTree = "<group>"; };
329FB1731A0A3A1600A5E88E /* MXRoomMember.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXRoomMember.h; sourceTree = "<group>"; };
329FB1741A0A3A1600A5E88E /* MXRoomMember.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXRoomMember.m; sourceTree = "<group>"; };
329FB1771A0A74B100A5E88E /* MXTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXTools.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -454,6 +466,7 @@
children = (
32BED28E1B00A23F00E668FE /* MXCallStack.h */,
3240951E1AFA432F00D81C97 /* MXCallStackCall.h */,
329B2ABA1D3FB01D002D546F /* Jingle */,
);
path = CallStack;
sourceTree = "<group>";
Expand Down Expand Up @@ -496,6 +509,19 @@
path = Mocks;
sourceTree = "<group>";
};
329B2ABA1D3FB01D002D546F /* Jingle */ = {
isa = PBXGroup;
children = (
329B2ABB1D3FB01D002D546F /* MXJingleCallStack.h */,
329B2ABC1D3FB01D002D546F /* MXJingleCallStack.m */,
329B2ABD1D3FB01D002D546F /* MXJingleCallStackCall.h */,
329B2ABE1D3FB01D002D546F /* MXJingleCallStackCall.m */,
323D29981D426F7000A80BE4 /* MXJingleVideoView.h */,
323D29991D426F7000A80BE4 /* MXJingleVideoView.m */,
);
path = Jingle;
sourceTree = "<group>";
};
32C6F92319DD814400EA4E9C = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -661,6 +687,7 @@
3264E2A21BDF8D1500F89A86 /* MXCoreDataRoomState.h in Headers */,
3291D4D41A68FFEB00C3BA41 /* MXFileRoomStore.h in Headers */,
32C6F93319DD814400EA4E9C /* MatrixSDK.h in Headers */,
323D299A1D426F7000A80BE4 /* MXJingleVideoView.h in Headers */,
323E0C571A2F6E7D00A31D73 /* MXRoomPowerLevels.h in Headers */,
3245A7501AF7B2930001D8A7 /* MXCall.h in Headers */,
32114A851A262CE000FF2EC4 /* MXStore.h in Headers */,
Expand All @@ -685,10 +712,12 @@
323B2AF81BCE8AC800B11F34 /* MXCoreDataRoom.h in Headers */,
329FB1751A0A3A1600A5E88E /* MXRoomMember.h in Headers */,
323B2ACF1BCD3EF000B11F34 /* MXCoreDataStore.h in Headers */,
329B2ABF1D3FB01D002D546F /* MXJingleCallStack.h in Headers */,
320DFDE019DD99B60068622A /* MXSession.h in Headers */,
324095221AFA432F00D81C97 /* MXCallStackCall.h in Headers */,
3233606F1A403A0D0071A488 /* MXFileStore.h in Headers */,
326056851C76FDF2009D44AD /* MXEventTimeline.h in Headers */,
329B2AC11D3FB01D002D546F /* MXJingleCallStackCall.h in Headers */,
327137271A24D50A00DB6757 /* MXMyUser.h in Headers */,
3220093819EFA4C9008DE41D /* MXEventListener.h in Headers */,
71DE22E11BC7C51200284153 /* MXReceiptData.h in Headers */,
Expand Down Expand Up @@ -902,11 +931,13 @@
3281E8B819E42DFE00976E1A /* MXJSONModel.m in Sources */,
3264E2A31BDF8D1500F89A86 /* MXCoreDataRoomState.m in Sources */,
32D776821A27877300FC4AA2 /* MXMemoryRoomStore.m in Sources */,
329B2AC01D3FB01D002D546F /* MXJingleCallStack.m in Sources */,
320DFDE319DD99B60068622A /* MXError.m in Sources */,
327137281A24D50A00DB6757 /* MXMyUser.m in Sources */,
32114A901A262ECB00FF2EC4 /* MXNoStore.m in Sources */,
32CE6FB91A409B1F00317F1E /* MXFileStoreMetaData.m in Sources */,
3264DB921CEC528D00B99881 /* MXAccountData.m in Sources */,
329B2AC21D3FB01D002D546F /* MXJingleCallStackCall.m in Sources */,
323E0C5C1A306D7A00A31D73 /* MXEvent.m in Sources */,
323B2AFF1BCE9B6700B11F34 /* MXCoreDataEvent+CoreDataProperties.m in Sources */,
32CAB10C1A925B41008C5BB9 /* MXHTTPOperation.m in Sources */,
Expand All @@ -926,6 +957,7 @@
32169AA11BD4D0E30077868B /* MXCoreDataStore.xcdatamodeld in Sources */,
323B2AF91BCE8AC900B11F34 /* MXCoreDataRoom.m in Sources */,
3220093919EFA4C9008DE41D /* MXEventListener.m in Sources */,
323D299B1D426F7000A80BE4 /* MXJingleVideoView.m in Sources */,
32DC15D11A8CF7AE006F9AD3 /* MXNotificationCenter.m in Sources */,
329FB17A1A0A74B100A5E88E /* MXTools.m in Sources */,
323B2AE01BCD4CB600B11F34 /* MXCoreDataAccount+CoreDataProperties.m in Sources */,
Expand Down
5 changes: 5 additions & 0 deletions MatrixSDK/JSONModels/MXJSONModels.m
Original file line number Diff line number Diff line change
Expand Up @@ -1114,6 +1114,11 @@ - (NSDictionary *)JSONDictionary
return JSONDictionary;
}

- (NSString *)description
{
return [NSString stringWithFormat:@"<MXCallCandidate: %p> %@ - %tu - %@", self, _sdpMid, _sdpMLineIndex, _candidate];
}

@end

@implementation MXCallCandidatesEventContent
Expand Down
2 changes: 1 addition & 1 deletion MatrixSDK/MXSession.m
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

#pragma mark - Constants definitions

const NSString *MatrixSDKVersion = @"0.6.10";
const NSString *MatrixSDKVersion = @"0.6.11";
NSString *const kMXSessionStateDidChangeNotification = @"kMXSessionStateDidChangeNotification";
NSString *const kMXSessionNewRoomNotification = @"kMXSessionNewRoomNotification";
NSString *const kMXSessionWillLeaveRoomNotification = @"kMXSessionWillLeaveRoomNotification";
Expand Down
49 changes: 49 additions & 0 deletions MatrixSDK/VoIP/CallStack/Jingle/MXJingleCallStack.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
/*
Copyright 2016 OpenMarket Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#import <Foundation/Foundation.h>

/**
Autamatic wrapper enabling.
The code of this wrapper is enabled only if the Xcode workspace contains the header files
of libjingle.
That means that MXJingleCallStack will be automatically built if the application that uses
MatrixSDK embeds libjingle.
The application can use the libjingle build pod provided by pristine.io at
https://github.com/pristineio/webrtc-build-scripts:
pod 'libjingle_peerconnection'
*/

#if __has_include("RTCPeerConnection.h")
#define MX_CALL_STACK_JINGLE
#endif

#ifdef MX_CALL_STACK_JINGLE

#import "MXCallStack.h"

/**
`MXJingleCallStack` is the implementation of the `MXCallStack` protocol using
libjingle.
@see https://developers.google.com/talk/libjingle/developer_guide
*/
@interface MXJingleCallStack : NSObject <MXCallStack>

@end

#endif // MX_CALL_STACK_JINGLE
53 changes: 53 additions & 0 deletions MatrixSDK/VoIP/CallStack/Jingle/MXJingleCallStack.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
/*
Copyright 2016 OpenMarket Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#import "MXJingleCallStack.h"

#ifdef MX_CALL_STACK_JINGLE

#import "MXJingleCallStackCall.h"

#import "RTCPeerConnectionFactory.h"

@interface MXJingleCallStack ()
{
RTCPeerConnectionFactory *peerConnectionFactory;
}

@end

@implementation MXJingleCallStack

- (instancetype)init
{
self = [super init];
if (self)
{
[RTCPeerConnectionFactory initializeSSL];

peerConnectionFactory = [[RTCPeerConnectionFactory alloc] init];
}
return self;
}

- (id<MXCallStackCall>)createCall
{
return [[MXJingleCallStackCall alloc] initWithFactory:peerConnectionFactory];
}

@end

#endif // MX_CALL_STACK_JINGLE
42 changes: 42 additions & 0 deletions MatrixSDK/VoIP/CallStack/Jingle/MXJingleCallStackCall.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
Copyright 2016 OpenMarket Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

#import <Foundation/Foundation.h>

#import "MXJingleCallStack.h"

#ifdef MX_CALL_STACK_JINGLE

#import "MXCallStackCall.h"

#import "RTCPeerConnectionDelegate.h"
#import "RTCSessionDescriptionDelegate.h"

@class RTCPeerConnectionFactory;

/**
`MXJingleCallStack` is the implementation of the `MXCallStack` protocol using
the WebRTC part of jingle.
@see https://developers.google.com/talk/libjingle/developer_guide
*/
@interface MXJingleCallStackCall : NSObject <MXCallStackCall, RTCPeerConnectionDelegate, RTCSessionDescriptionDelegate>

- (instancetype)initWithFactory:(RTCPeerConnectionFactory*)factory;

@end

#endif // MX_CALL_STACK_JINGLE
Loading

0 comments on commit ba8433e

Please sign in to comment.