SOS

This is a list of classes related to SOS. The entry point into this feature is through the SOSSessionManager class. Refer to that class to get started.

  • The SOSSessionManager class is the main interface to the SOS framework.

    This object manages the flow of SOS sessions throughout the lifetime of the app. Configuration and customization of the SOS framework is handled through the public properties on the SOSSessionManager instance.

    SOSSessionManager conforms to a multicast delegate model for messaging. Any class which implements the SOSDelegate protocol can be added to a list of delegates to receive messages asynchronously.

    To get an instance of this class, use the SCServiceCloud.sos property on +[SCServiceCloud sharedInstance].

    See more

    Declaration

    Objective-C

    @interface SOSSessionManager : NSObject

    Swift

    class SOSSessionManager : NSObject
  • The SOSDelegate protocol provides information about the SOS session.

    See more

    Declaration

    Objective-C

    @protocol SOSDelegate <NSObject>

    Swift

    protocol SOSDelegate : NSObjectProtocol
  • SOSCompletionHandler block definition

    Declaration

    Objective-C

    typedef void (^SOSCompletionHandler)(NSError *__strong,
                                         SOSSessionManager *__strong)

    Swift

    typealias SOSCompletionHandler = (Error?, SOSSessionManager?) -> Void

    Parameters

    error

    The error that occurred in the block.

    sos

    The instance of the SOSSessionManager the block is acting on.

  • Full list of Session states the SOS framework can exhibit.

    See more

    Declaration

    Objective-C

    enum SOSSessionState {}

    Swift

    enum SOSSessionState : Int
  • Declaration

    Objective-C

    enum SOSStopReason {}

    Swift

    enum SOSStopReason : Int
  • The SOSOptions class allows you to configure the behavior of any SOSSessionManager session.

    This object determines how an SOS session is routed, as well as the behavior of a session once established.

    See more

    Declaration

    Objective-C

    @interface SOSOptions : NSObject

    Swift

    class SOSOptions : NSObject
  • Sets the starting view for the current SOS Session.

    See more

    Declaration

    Objective-C

    enum SOSCameraType {}

    Swift

    enum SOSCameraType : Int
  • Sets the Phase of the UI that will be replaced by the user

    See more

    Declaration

    Objective-C

    enum SOSUIPhase {}

    Swift

    enum SOSUIPhase : Int
  • The SOSConnectingBaseViewController serves as the base controller which manages interactions between the UI and SOS backend for the connecting phase of SOS.

    If you wish to replace the onboarding UI, your class must implement this base class.

    All method overrides require a call back to super for SOS to function properly.

    See more

    Declaration

    Objective-C

    @interface SOSConnectingBaseViewController
        : UIViewController <SOSConnectingViewController>

    Swift

    class SOSConnectingBaseViewController : UIViewController, SOSConnectingViewController
  • Protocol which defines properties and methods which are required for all view controllers which will accommodate the role for onboarding in SOS.

    See more

    Declaration

    Objective-C

    @protocol SOSConnectingViewController <NSObject>

    Swift

    protocol SOSConnectingViewController : NSObjectProtocol
  • SOS ErrorCode definitions.

    Errors fall into one of several groups (or series) of errors.

    If there is an error thrown by a library dependency it will be included as metadata in the userInfo of the error which is returned to the application code.

    See more

    Declaration

    Objective-C

    enum SOSErrorCode {}

    Swift

    enum SOSErrorCode : Int
  • Undocumented

    Declaration

    Objective-C

    @interface SOSLineDrawView: UIView
    @end

    Swift

    class SOSLineDrawView : UIView
  • Custom UITextField that auto-masks itself when screen sharing is enabled during an SOS session. Otherwise identical to the default UITextField.

    See more

    Declaration

    Objective-C

    @interface SOSMaskedTextField : UITextField <SOSMaskable>

    Swift

    class SOSMaskedTextField : UITextField, SOSMaskable
  • Protocol for objects that can be registered as maskable. Anything implementing this protocol can be registered with the SOS Masking class, which will send the messages declared below at the appropriate times to enable/disable the masks during an SOS session.

    See more

    Declaration

    Objective-C

    @protocol SOSMaskable <NSObject>

    Swift

    protocol SOSMaskable : NSObjectProtocol
  • Enumeration of the various states a given mask can be in.

    See more

    Declaration

    Objective-C

    enum SOSMaskState {}

    Swift

    enum SOSMaskState : UInt
  • The SOSMasking class is responsible for managing the field masking applied during an SOS session. Sensitive fields or sections of the application may be masked to prevent them from appearing to the customer service agent in the video feed.

    You can retrieve a reference to this class from the SOSSessionManager instance, and then use the APIs provided below to add or remove parts of your application to be masked on an as-needed basis.

    See more

    Declaration

    Objective-C

    @interface SOSMasking : NSObject <SOSDelegate>

    Swift

    class SOSMasking : NSObject, SOSDelegate
  • SOS Network Reporter to manage delegates which receive information about SOS Audio/Video networking events.

    Please note that the information related here refers to network information about the agent’s connection experience.

    See more

    Declaration

    Objective-C

    @interface SOSNetworkReporter : NSObject
  • Delegate protocol to listen to SOS network traffic events.

    See more

    Declaration

    Objective-C

    @protocol SOSNetworkReporterDelegate <NSObject>

    Swift

    protocol SOSNetworkReporterDelegate : NSObjectProtocol
  • Defines the discrete network conditions which can occur within an SOS Session.

    See more

    Declaration

    Objective-C

    enum SOSNetworkStatus {}

    Swift

    enum SOSNetworkStatus : UInt
  • Defines the discrete network reconnect status which can occur within an SOS Session.

    See more

    Declaration

    Objective-C

    enum SOSReconnectStatus {}

    Swift

    enum SOSReconnectStatus : UInt
  • The SOSOnboardingBaseViewController serves as the base controller which manages interactions between the UI and SOS backend for the onboarding phase of SOS.

    If you wish to replace the onboarding UI, your class must implement this base class.

    All method overrides require a call back to super for SOS to function properly.

    See more

    Declaration

    Objective-C

    @interface SOSOnboardingBaseViewController
        : UIViewController <SOSOnboardingViewController>

    Swift

    class SOSOnboardingBaseViewController : UIViewController, SOSOnboardingViewController
  • Protocol which defines properties and methods which are required for all view controllers which will accommodate the role for onboarding in SOS.

    See more

    Declaration

    Objective-C

    @protocol SOSOnboardingViewController <NSObject>

    Swift

    protocol SOSOnboardingViewController : NSObjectProtocol
  • Class to handle screen annotations. This class implements the SOSWebRTCDelegate.

    See more

    Declaration

    Objective-C

    @interface SOSScreenAnnotations : NSObject

    Swift

    class SOSScreenAnnotations : NSObject
  • Interface for configuring screen sharing behavior.

    See more

    Declaration

    Objective-C

    @interface SOSScreenSharing : NSObject

    Swift

    class SOSScreenSharing : NSObject
  • The SOSScreenSharingBaseViewController serves as the base controller which manages interactions between the UI and SOS backend for the screen sharing phase of SOS.

    If you wish to replace the screen sharing UI, your class must implement this base class.

    All method overrides require a call back to super for SOS to function properly.

    See more

    Declaration

    Objective-C

    @interface SOSSessionBaseViewController
        : UIViewController <SOSSessionViewController>

    Swift

    class SOSSessionBaseViewController : UIViewController, SOSSessionViewController
  • Protocol which defines properties and methods which are required for all view controllers which will accommodate the role for screen sharing in SOS.

    See more

    Declaration

    Objective-C

    @protocol SOSSessionViewController <NSObject>

    Swift

    protocol SOSSessionViewController : NSObjectProtocol
  • The SOSUIAgentStreamReceivable protocol allows your view controller implementation to handle an agent video stream.

    See more

    Declaration

    Objective-C

    @protocol SOSUIAgentStreamReceivable

    Swift

    protocol SOSUIAgentStreamReceivable
  • Undocumented

    See more

    Declaration

    Objective-C

    @protocol SOSUIDeviceCameraReceivable
    @required
    
    - (BOOL)willHandleDeviceCamera;
    
    @optional
    
    - (void)didReceiveDeviceCaptureLayer:(__weak AVCaptureVideoPreviewLayer *)deviceCapture;
    
    @end

    Swift

    protocol SOSUIDeviceCameraReceivable
  • The SOSUILineDrawingReceivable protocol allows your view controller implementation to handle line drawings.

    See more

    Declaration

    Objective-C

    @protocol SOSUILineDrawingReceivable

    Swift

    protocol SOSUILineDrawingReceivable