#ifndef OngoingCallContext_h #define OngoingCallContext_h #import @interface OngoingCallConnectionDescriptionWebrtc : NSObject @property (nonatomic, readonly) int64_t connectionId; @property (nonatomic, strong, readonly) NSString * _Nonnull ip; @property (nonatomic, strong, readonly) NSString * _Nonnull ipv6; @property (nonatomic, readonly) int32_t port; @property (nonatomic, strong, readonly) NSData * _Nonnull peerTag; - (instancetype _Nonnull)initWithConnectionId:(int64_t)connectionId ip:(NSString * _Nonnull)ip ipv6:(NSString * _Nonnull)ipv6 port:(int32_t)port peerTag:(NSData * _Nonnull)peerTag; @end typedef NS_ENUM(int32_t, OngoingCallStateWebrtc) { OngoingCallStateInitializing, OngoingCallStateConnected, OngoingCallStateFailed, OngoingCallStateReconnecting }; typedef NS_ENUM(int32_t, OngoingCallNetworkTypeWebrtc) { OngoingCallNetworkTypeWifi, OngoingCallNetworkTypeCellularGprs, OngoingCallNetworkTypeCellularEdge, OngoingCallNetworkTypeCellular3g, OngoingCallNetworkTypeCellularLte }; typedef NS_ENUM(int32_t, OngoingCallDataSavingWebrtc) { OngoingCallDataSavingNever, OngoingCallDataSavingCellular, OngoingCallDataSavingAlways }; @protocol OngoingCallThreadLocalContextQueueWebrtc - (void)dispatch:(void (^ _Nonnull)())f; - (bool)isCurrent; @end @interface VoipProxyServerWebrtc : NSObject @property (nonatomic, strong, readonly) NSString * _Nonnull host; @property (nonatomic, readonly) int32_t port; @property (nonatomic, strong, readonly) NSString * _Nullable username; @property (nonatomic, strong, readonly) NSString * _Nullable password; - (instancetype _Nonnull)initWithHost:(NSString * _Nonnull)host port:(int32_t)port username:(NSString * _Nullable)username password:(NSString * _Nullable)password; @end @interface OngoingCallThreadLocalContextWebrtc : NSObject + (void)setupLoggingFunction:(void (* _Nullable)(NSString * _Nullable))loggingFunction; + (void)applyServerConfig:(NSString * _Nullable)data; + (int32_t)maxLayer; + (NSString * _Nonnull)version; @property (nonatomic, copy) void (^ _Nullable stateChanged)(OngoingCallStateWebrtc); @property (nonatomic, copy) void (^ _Nullable signalBarsChanged)(int32_t); - (instancetype _Nonnull)initWithQueue:(id _Nonnull)queue proxy:(VoipProxyServerWebrtc * _Nullable)proxy networkType:(OngoingCallNetworkTypeWebrtc)networkType dataSaving:(OngoingCallDataSavingWebrtc)dataSaving derivedState:(NSData * _Nonnull)derivedState key:(NSData * _Nonnull)key isOutgoing:(bool)isOutgoing primaryConnection:(OngoingCallConnectionDescriptionWebrtc * _Nonnull)primaryConnection alternativeConnections:(NSArray * _Nonnull)alternativeConnections maxLayer:(int32_t)maxLayer allowP2P:(BOOL)allowP2P logPath:(NSString * _Nonnull)logPath; - (void)stop:(void (^_Nullable)(NSString * _Nullable debugLog, int64_t bytesSentWifi, int64_t bytesReceivedWifi, int64_t bytesSentMobile, int64_t bytesReceivedMobile))completion; - (bool)needRate; - (NSString * _Nullable)debugInfo; - (NSString * _Nullable)version; - (NSData * _Nonnull)getDerivedState; - (void)setIsMuted:(bool)isMuted; - (void)setNetworkType:(OngoingCallNetworkTypeWebrtc)networkType; @end #endif