Agora RTC Objective-C API Reference Refactor

Enumerations
AgoraRtmEnumerates.h File Reference

Go to the source code of this file.

## Enumerations
enum | AgoraRtmAreaCode { AgoraRtmAreaCodeCN = 0x00000001, AgoraRtmAreaCodeNA = 0x00000002, AgoraRtmAreaCodeEU = 0x00000004, AgoraRtmAreaCodeAS = 0x00000008, AgoraRtmAreaCodeJP = 0x00000010, AgoraRtmAreaCodeIN = 0x00000020, AgoraRtmAreaCodeGLOB = (0xFFFFFFFF) }
enum | AgoraRtmEncryptionMode
enum | AgoraRtmErrorCode { AgoraRtmErrorOk = 0, AgoraRtmErrorNotInitialized = -10001, AgoraRtmErrorNotLogin = -10002, AgoraRtmErrorInvalidAppId = -10003, AgoraRtmErrorInvalidEventHandler = -10004, AgoraRtmErrorInvalidToken = -10005, AgoraRtmErrorInvalidUserId = -10006, AgoraRtmErrorInitServiceFailed = -10007, AgoraRtmErrorInvalidChannelName = -10008, AgoraRtmErrorTokenExpired = -10009, AgoraRtmErrorLoginNoServerResources = -10010, AgoraRtmErrorLoginTimeout = -10011, AgoraRtmErrorLoginRejected = -10012, AgoraRtmErrorLoginAborted = -10013, AgoraRtmErrorInvalidParameter = -10014, AgoraRtmErrorLoginNotAuthorized = -10015, AgoraRtmErrorLoginInconsistentAppId = -10016, AgoraRtmErrorDuplicateOperation = -10017, AgoraRtmErrorInstanceAlreadyReleased = -10018, AgoraRtmErrorInvalidChannelType = -10019, AgoraRtmErrorInvalidEncryptionParameter = -10020, AgoraRtmErrorOperationRateExceedLimitation = -10021, AgoraRtmErrorServiceNotSupport = -10022, AgoraRtmErrorLoginCanceled = -10023, AgoraRtmErrorInvalidPrivateConfig = -10024, AgoraRtmErrorNotConnected = -10025, AgoraRtmErrorRenewTokenTimeout = -10026, AgoraRtmErrorChannelNotJoined = -11001, AgoraRtmErrorChannelNotSubscribed = -11002, AgoraRtmErrorChannelExceedTopicUserLimitation = -11003, AgoraRtmErrorChannelReused = -11004, AgoraRtmErrorChannelInstanceExceedLimitation = -11005, AgoraRtmErrorChannelInErrorState = -11006, AgoraRtmErrorChannelJoinFailed = -11007, AgoraRtmErrorChannelInvalidTopicName = -11008, AgoraRtmErrorChannelInvalidMessage = -11009, AgoraRtmErrorChannelMessageLengthExceedLimitation = -11010, AgoraRtmErrorChannelInvalidUserList = -11011, AgoraRtmErrorChannelNotAvailable = -11012, AgoraRtmErrorChannelTopicNotSubscribed = -11013, AgoraRtmErrorChannelExceedTopicLimitation = -11014, AgoraRtmErrorChannelJoinTopicFailed = -11015, AgoraRtmErrorChannelTopicNotJoined = -11016, AgoraRtmErrorChannelTopicNotExist = -11017, AgoraRtmErrorChannelInvalidTopicMeta = -11018, AgoraRtmErrorChannelSubscribeTimeout = -11019, AgoraRtmErrorChannelSubscribeTooFrequent = -11020, AgoraRtmErrorChannelSubscribeFailed = -11021, AgoraRtmErrorChannelUnsubscribeFailed = -11022, AgoraRtmErrorChannelEncryptMessageFailed = -11023, AgoraRtmErrorChannelPublishMessageFailed = -11024, AgoraRtmErrorChannelPublishMessageTooFrequent = -11025, AgoraRtmErrorChannelPublishMessageTimeout = -11026, AgoraRtmErrorChannelNotConnected = -11027, AgoraRtmErrorChannelLeaveFailed = -11028, AgoraRtmErrorChannelCustomTypeLengthOverflow = -11029, AgoraRtmErrorChannelInvalidCustomType = -11030, AgoraRtmErrorChannelUnsupportedMessageType = -11031, AgoraRtmErrorChannelPresenceNotReady = -11032, AgoraRtmErrorChannelReceiverOffline = -11033, AgoraRtmErrorChannelJoinCanceled = -11034, AgoraRtmErrorChannelReceiverOfflineButMessageStoreSucceeded = -11035, AgoraRtmErrorChannelReceiverOfflineAndMessageStoreFailed = -11036, AgoraRtmErrorChannelMessageDeliveredButStoreFailed = -11037, AgoraRtmErrorStorageOperationFailed = -12001, AgoraRtmErrorStorageMetadataItemExceedLimitation = -12002, AgoraRtmErrorStorageInvalidMetadataItem = -12003, AgoraRtmErrorStorageInvalidArgument = -12004, AgoraRtmErrorStorageInvalidRevision = -12005, AgoraRtmErrorStorageMetadataLengthOverflow = -12006, AgoraRtmErrorStorageInvalidLockName = -12007, AgoraRtmErrorStorageLockNotAcquired = -12008, AgoraRtmErrorStorageInvalidKey = -12009, AgoraRtmErrorStorageInvalidValue = -12010, AgoraRtmErrorStorageKeyLengthOverflow = -12011, AgoraRtmErrorStorageValueLengthOverflow = -12012, AgoraRtmErrorStorageDuplicateKey = -12013, AgoraRtmErrorStorageOutdatedRevision = -12014, AgoraRtmErrorStorageNotSubscribe = -12015, AgoraRtmErrorStorageInvalidMetadataInstance = -12016, AgoraRtmErrorStorageSubscribeUserExceedLimitation = -12017, AgoraRtmErrorStorageOperationTimeout = -12018, AgoraRtmErrorStorageNotAvailable = -12019, AgoraRtmErrorPresenceNotConnected = -13001, AgoraRtmErrorPresenceNotWritable = -13002, AgoraRtmErrorPresenceInvalidArgument = -13003, AgoraRtmErrorPresenceCacheTooManyStates = -13004, AgoraRtmErrorPresenceStateCountOverflow = -13005, AgoraRtmErrorPresenceInvalidStateKey = -13006, AgoraRtmErrorPresenceInvalidStateValue = -13007, AgoraRtmErrorPresenceStateKeySizeOverflow = -13008, AgoraRtmErrorPresenceStateValueSizeOverflow = -13009, AgoraRtmErrorPresenceStateDuplicateKey = -13010, AgoraRtmErrorPresenceUserNotExist = -13011, AgoraRtmErrorPresenceOperationTimeout = -13012, AgoraRtmErrorPresenceOperationFailed = -13013, AgoraRtmErrorLockOperationFailed = -14001, AgoraRtmErrorLockOperationTimeout = -14002, AgoraRtmErrorLockOperationPerforming = -14003, AgoraRtmErrorLockAlreadyExist = -14004, AgoraRtmErrorLockInvalidName = -14005, AgoraRtmErrorLockNotAcquired = -14006, AgoraRtmErrorLockAcquireFailed = -14007, AgoraRtmErrorLockNotExist = -14008, AgoraRtmErrorLockNotAvailable = -14009, AgoraRtmErrorHistoryOperationFailed = -15001, AgoraRtmErrorHistoryInvalidTimestamp = -15002, AgoraRtmErrorHistoryOperationTimeout = -15003, AgoraRtmErrorHistoryOperationNotPermitted = -15004, AgoraRtmErrorHistoryNotAvailable = -15005 }
enum | AgoraRtmLockEventType { AgoraRtmLockEventTypeNone = 0, AgoraRtmLockEventTypeSnapshot = 1, AgoraRtmLockEventTypeLockSet = 2, AgoraRtmLockEventTypeLockRemoved = 3, AgoraRtmLockEventTypeLockAcquired = 4, AgoraRtmLockEventTypeLockReleased = 5, AgoraRtmLockEventTypeLockExpired = 6 }
enum | AgoraRtmProxyType { AgoraRtmProxyTypeNone = 0, AgoraRtmProxyTypeHttp = 1, AgoraRtmProxyTypeCloudTcp = 2 }
enum | AgoraRtmProtocolType { AgoraRtmProtocolTypeTcpUdp = 0, AgoraRtmProtocolTypeTcpOnly = 1 }
enum | AgoraRtmLinkState { AgoraRtmLinkStateIdle = 0, AgoraRtmLinkStateConnecting = 1, AgoraRtmLinkStateConnected = 2, AgoraRtmLinkStateDisconnected = 3, AgoraRtmLinkStateSuspended = 4, AgoraRtmLinkStateFailed = 5 }
enum | AgoraRtmLinkStateChangeReason { AgoraRtmLinkStateChangeReasonUnknown = 0, AgoraRtmLinkStateChangeReasonLogin = 1, AgoraRtmLinkStateChangeReasonLoginSuccess = 2, AgoraRtmLinkStateChangeReasonLoginTimeout = 3, AgoraRtmLinkStateChangeReasonLoginNotAuthorized = 4, AgoraRtmLinkStateChangeReasonLoginRejected = 5, AgoraRtmLinkStateChangeReasonRelogin = 6, AgoraRtmLinkStateChangeReasonLogout = 7, AgoraRtmLinkStateChangeReasonAutoReconnect = 8, AgoraRtmLinkStateChangeReasonReconnectTimeout = 9, AgoraRtmLinkStateChangeReasonReconnectSuccess = 10, AgoraRtmLinkStateChangeReasonJoin = 11, AgoraRtmLinkStateChangeReasonJoinSuccess = 12, AgoraRtmLinkStateChangeReasonJoinFailed = 13, AgoraRtmLinkStateChangeReasonRejoin = 14, AgoraRtmLinkStateChangeReasonLeave = 15, AgoraRtmLinkStateChangeReasonInvalidToken = 16, AgoraRtmLinkStateChangeReasonTokenExpired = 17, AgoraRtmLinkStateChangeReasonInconsistentAppId = 18, AgoraRtmLinkStateChangeReasonInvalidChannelName = 19, AgoraRtmLinkStateChangeReasonInvalidUserId = 20, AgoraRtmLinkStateChangeReasonNotInitialized = 21, AgoraRtmLinkStateChangeReasonRtmServiceNotConnected = 22, AgoraRtmLinkStateChangeReasonChannelInstanceExceedLimitation = 23, AgoraRtmLinkStateChangeReasonOperationRateExceedLimitation = 24, AgoraRtmLinkStateChangeReasonChannelInErrorState = 25, AgoraRtmLinkStateChangeReasonPresenceNotConnected = 26, AgoraRtmLinkStateChangeReasonSameUidLogin = 27, AgoraRtmLinkStateChangeReasonKickedOutByServer = 28, AgoraRtmLinkStateChangeReasonKeepAliveTimeout = 29, AgoraRtmLinkStateChangeReasonConnectionError = 30, AgoraRtmLinkStateChangeReasonPresenceNotReady = 31, AgoraRtmLinkStateChangeReasonNetworkChange = 32, AgoraRtmLinkStateChangeReasonServiceNotSupported = 33, AgoraRtmLinkStateChangeReasonStreamChannelNotAvailable = 34, AgoraRtmLinkStateChangeReasonStorageNotAvailable = 35, AgoraRtmLinkStateChangeReasonLockNotAvailable = 36, AgoraRtmLinkStateChangeReasonLoginTooFrequent = 37 }
enum | AgoraRtmLinkOperation { AgoraRtmLinkOperationLogin = 0, AgoraRtmLinkOperationLogout = 1, AgoraRtmLinkOperationJoin = 2, AgoraRtmLinkOperationLeave = 3, AgoraRtmLinkOperationServerReject = 4, AgoraRtmLinkOperationAutoReconnect = 5, AgoraRtmLinkOperationReconnected = 6, AgoraRtmLinkOperationHeartbeatTimeout = 7, AgoraRtmLinkOperationServerTimeout = 8, AgoraRtmLinkOperationNetworkChange = 9 }
enum | AgoraRtmJoinChannelFeature { AgoraRtmJoinChannelFeatureNone = 0, AgoraRtmJoinChannelFeaturePresence = 1, AgoraRtmJoinChannelFeatureMetadata = 1 << 1, AgoraRtmJoinChannelFeatureLock = 1 << 2, AgoraRtmJoinChannelFeatureBeQuiet = 1 << 3 }
enum | AgoraRtmSubscribeChannelFeature { AgoraRtmSubscribeChannelFeatureNone = 0, AgoraRtmSubscribeChannelFeaturePresence = 1, AgoraRtmSubscribeChannelFeatureMetadata = 1 << 1, AgoraRtmSubscribeChannelFeatureMessage = 1 << 2, AgoraRtmSubscribeChannelFeatureLock = 1 << 3, AgoraRtmSubscribeChannelFeatureBeQuiet = 1 << 4 }
enum | AgoraRtmClientConnectionState { AgoraRtmClientConnectionStateDisconnected = 1, AgoraRtmClientConnectionStateConnecting = 2, AgoraRtmClientConnectionStateConnected = 3, AgoraRtmClientConnectionStateReconnecting = 4, AgoraRtmClientConnectionStateFailed = 5 }
enum | AgoraRtmClientConnectionChangeReason { AgoraRtmClientConnectionChangedConnecting = 0, AgoraRtmClientConnectionChangedJoinSuccess = 1, AgoraRtmClientConnectionChangedInterrupted = 2, AgoraRtmClientConnectionChangedBannedByServer = 3, AgoraRtmClientConnectionChangedJoinFailed = 4, AgoraRtmClientConnectionChangedLeaveChannel = 5, AgoraRtmClientConnectionChangedInvalidAppId = 6, AgoraRtmClientConnectionChangedInvalidChannelName = 7, AgoraRtmClientConnectionChangedInvalidToken = 8, AgoraRtmClientConnectionChangedTokenExpired = 9, AgoraRtmClientConnectionChangedRejectedByServer = 10, AgoraRtmClientConnectionChangedSettingProxyServer = 11, AgoraRtmClientConnectionChangedRenewToken = 12, AgoraRtmClientConnectionChangedClientIpAddressChanged = 13, AgoraRtmClientConnectionChangedKeepAliveTimeout = 14, AgoraRtmClientConnectionChangedRejoinSuccess = 15, AgoraRtmClientConnectionChangedChangedLost = 16, AgoraRtmClientConnectionChangedEchoTest = 17, AgoraRtmClientConnectionChangedClientIpAddressChangedByUser = 18, AgoraRtmClientConnectionChangedSameUidLogin = 19, AgoraRtmClientConnectionChangedTooManyBroadcasters = 20, AgoraRtmClientConnectionChangedLicenseValidationFailure = 21, AgoraRtmClientConnectionChangedCertificationVerifyFailure = 22, AgoraRtmClientConnectionChangedStreamChannelNotAvailable = 23, AgoraRtmClientConnectionChangedInconsistentAppId = 24, AgoraRtmClientConnectionChangedLoginSuccess = 10001, AgoraRtmClientConnectionChangedLogout = 10002, AgoraRtmClientConnectionChangedPresenceNotReady = 10003 }
enum | AgoraRtmChannelType { AgoraRtmChannelTypeNone = 0, AgoraRtmChannelTypeMessage = 1, AgoraRtmChannelTypeStream = 2, AgoraRtmChannelTypeUser = 3 }
enum | AgoraRtmStorageEventType { AgoraRtmStorageEventTypeNone = 0, AgoraRtmStorageEventTypeSnapshot = 1, AgoraRtmStorageEventTypeSet = 2, AgoraRtmStorageEventTypeUpdate = 3, AgoraRtmStorageEventTypeRemove = 4 }
enum | AgoraRtmPresenceType { AgoraRtmPresenceTypeRemoteJoinChannel = 0, AgoraRtmPresenceTypeRemoteLeaveChannel = 1, AgoraRtmPresenceTypeRemoteConnectionTimeout = 2, AgoraRtmPresenceTypeRemoteJoinTopic = 3, AgoraRtmPresenceTypeRemoteLeaveTopic = 4, AgoraRtmPresenceTypeSelfJoinChannel = 5 }
enum | AgoraRtmMessageQos { AgoraRtmMessageQosUnordered = 0, AgoraRtmMessageQosOrdered = 1 }

## Enumeration Type Documentation

## ◆ AgoraRtmAreaCode

enum AgoraRtmAreaCode

IP areas.

Enumerator
AgoraRtmAreaCodeCN | Mainland China.
AgoraRtmAreaCodeNA | North America.
AgoraRtmAreaCodeEU | Europe.
AgoraRtmAreaCodeAS | Asia, excluding Mainland China.
AgoraRtmAreaCodeJP | Japan.
AgoraRtmAreaCodeIN | India.
AgoraRtmAreaCodeGLOB | (Default) Global.

## ◆ AgoraRtmEncryptionMode

enum AgoraRtmEncryptionMode

The encryption mode.

Enumerator
AgoraRtmEncryptionNone |
AgoraRtmEncryptionAES128GCM |
AgoraRtmEncryptionAES256GCM |

## ◆ AgoraRtmMessagePriority

enum AgoraRtmMessagePriority

Enumerator
AgoraRtmMessagePriorityHighest | The highest priority
AgoraRtmMessagePriorityHigh | The high priority
AgoraRtmMessagePriorityNormal | The normal priority (Default)
AgoraRtmMessagePriorityLow | The low priority

## ◆ AgoraRtmErrorCode

enum AgoraRtmErrorCode

The error codes of rtm client.

Enumerator
AgoraRtmErrorOk | 0: No error occurs.
AgoraRtmErrorNotInitialized | -10001 ~ -11000 : reserved for generic error. -10001: The SDK is not initialized.
AgoraRtmErrorNotLogin | -10002: The user didn't login the RTM system.
AgoraRtmErrorInvalidAppId | -10003: The app ID is invalid.
AgoraRtmErrorInvalidEventHandler | -10004: The event handler is invalid.
AgoraRtmErrorInvalidToken | -10005: The token is invalid.
AgoraRtmErrorInvalidUserId | -10006: The user ID is invalid.
AgoraRtmErrorInitServiceFailed | -10007: The service is not initialized.
AgoraRtmErrorInvalidChannelName | -10008: The channel name is invalid.
AgoraRtmErrorTokenExpired | -10009: The token has expired.
AgoraRtmErrorLoginNoServerResources | -10010: There is no server resources now.
AgoraRtmErrorLoginTimeout | -10011: The login timeout.
AgoraRtmErrorLoginRejected | -10012: The login is rejected by server.
AgoraRtmErrorLoginAborted | -10013: The login is aborted due to unrecoverable error.
AgoraRtmErrorInvalidParameter | -10014: The parameter is invalid.
AgoraRtmErrorLoginNotAuthorized | -10015: The login is not authorized. Happens user login the RTM system without granted from console.
AgoraRtmErrorLoginInconsistentAppId | -10016: Try to login or join with inconsistent app ID.
AgoraRtmErrorDuplicateOperation | -10017: Already call same request.
AgoraRtmErrorInstanceAlreadyReleased | -10018: Already call destroy or release, this instance is forbidden to call any api, please create new instance.
AgoraRtmErrorInvalidChannelType | -10019: Invalid channel type
AgoraRtmErrorInvalidEncryptionParameter | -10020: The encryption parameter is invalid.
AgoraRtmErrorOperationRateExceedLimitation | -10021: The operation is too frequent.
AgoraRtmErrorServiceNotSupport | -10022: The service is not configured in private config mode.
AgoraRtmErrorLoginCanceled | -10023: This login operation stopped by a new login operation or logout operation.
AgoraRtmErrorInvalidPrivateConfig | -10024: The private config is invalid, set private config should both set serviceType and accessPointHosts.
AgoraRtmErrorNotConnected | -10025: Perform operation failed due to RTM service is not connected.
AgoraRtmErrorRenewTokenTimeout | -10026: Renew token timeout.
AgoraRtmErrorChannelNotJoined | -11001 ~ -12000 : reserved for channel error. -11001: The user has not joined the channel.
AgoraRtmErrorChannelNotSubscribed | -11002: The user has not subscribed the channel.
AgoraRtmErrorChannelExceedTopicUserLimitation | -11003: The topic member count exceeds the limit.
AgoraRtmErrorChannelReused | -11004: The channel is reused in RTC.
AgoraRtmErrorChannelInstanceExceedLimitation | -11005: The channel instance count exceeds the limit.
AgoraRtmErrorChannelInErrorState | -11006: The channel is in error state.
AgoraRtmErrorChannelJoinFailed | -11007: The channel join failed.
AgoraRtmErrorChannelInvalidTopicName | -11008: The topic name is invalid.
AgoraRtmErrorChannelInvalidMessage | -11009: The message is invalid.
AgoraRtmErrorChannelMessageLengthExceedLimitation | -11010: The message length exceeds the limit.
AgoraRtmErrorChannelInvalidUserList | -11011: The user list is invalid.
AgoraRtmErrorChannelNotAvailable | -11012: The stream channel is not available.
AgoraRtmErrorChannelTopicNotSubscribed | -11013: The topic is not subscribed.
AgoraRtmErrorChannelExceedTopicLimitation | -11014: The topic count exceeds the limit.
AgoraRtmErrorChannelJoinTopicFailed | -11015: Join topic failed.
AgoraRtmErrorChannelTopicNotJoined | -11016: The topic is not joined.
AgoraRtmErrorChannelTopicNotExist | -11017: The topic does not exist.
AgoraRtmErrorChannelInvalidTopicMeta | -11018: The topic meta is invalid.
AgoraRtmErrorChannelSubscribeTimeout | -11019: Subscribe channel timeout.
AgoraRtmErrorChannelSubscribeTooFrequent | -11020: Subscribe channel too frequent.
AgoraRtmErrorChannelSubscribeFailed | -11021: Subscribe channel failed.
AgoraRtmErrorChannelUnsubscribeFailed | -11022: Unsubscribe channel failed.
AgoraRtmErrorChannelEncryptMessageFailed | -11023: Encrypt message failed.
AgoraRtmErrorChannelPublishMessageFailed | -11024: Publish message failed.
AgoraRtmErrorChannelPublishMessageTooFrequent | -11025: Publish message too frequent.
AgoraRtmErrorChannelPublishMessageTimeout | -11026: Publish message timeout.
AgoraRtmErrorChannelNotConnected | -10027: The connection state is invalid.
AgoraRtmErrorChannelLeaveFailed | -11028: Leave channel failed.
AgoraRtmErrorChannelCustomTypeLengthOverflow | -11029: The custom type length exceeds the limit.
AgoraRtmErrorChannelInvalidCustomType | -11030: The custom type is invalid.
AgoraRtmErrorChannelUnsupportedMessageType | -11031: unsupported message type (in MacOS/iOS platform，message only support NSString and NSData)
AgoraRtmErrorChannelPresenceNotReady | -11032: The channel presence is not ready.
AgoraRtmErrorChannelReceiverOffline | -11033: The destination user of publish message is offline.
AgoraRtmErrorChannelJoinCanceled | -11034: The channel join operation is canceled.
AgoraRtmErrorChannelReceiverOfflineButMessageStoreSucceeded | -11035: The message receiver is offline but the message store in history succeeded.
AgoraRtmErrorChannelReceiverOfflineAndMessageStoreFailed | -11036: The message receiver is offline and the message store in history failed.
AgoraRtmErrorChannelMessageDeliveredButStoreFailed | -11037: The message delivered successfully but store in history failed.
AgoraRtmErrorStorageOperationFailed | -12001 ~ -13000 : reserved for storage error. -12001: The storage operation failed.
AgoraRtmErrorStorageMetadataItemExceedLimitation | -12002: The metadata item count exceeds the limit.
AgoraRtmErrorStorageInvalidMetadataItem | -12003: The metadata item is invalid.
AgoraRtmErrorStorageInvalidArgument | -12004: The argument in storage operation is invalid.
AgoraRtmErrorStorageInvalidRevision | -12005: The revision in storage operation is invalid.
AgoraRtmErrorStorageMetadataLengthOverflow | -12006: The metadata length exceeds the limit.
AgoraRtmErrorStorageInvalidLockName | -12007: The lock name in storage operation is invalid.
AgoraRtmErrorStorageLockNotAcquired | -12008: The lock in storage operation is not acquired.
AgoraRtmErrorStorageInvalidKey | -12009: The metadata key is invalid.
AgoraRtmErrorStorageInvalidValue | -12010: The metadata value is invalid.
AgoraRtmErrorStorageKeyLengthOverflow | -12011: The metadata key length exceeds the limit.
AgoraRtmErrorStorageValueLengthOverflow | -12012: The metadata value length exceeds the limit.
AgoraRtmErrorStorageDuplicateKey | -12013: The metadata key already exists.
AgoraRtmErrorStorageOutdatedRevision | -12014: The revision in storage operation is outdated or the key does not exist.
AgoraRtmErrorStorageNotSubscribe | -12015: The storage operation performed without subscribing.
AgoraRtmErrorStorageInvalidMetadataInstance | -12016: The metadata item is invalid.
AgoraRtmErrorStorageSubscribeUserExceedLimitation | -12017: The user count exceeds the limit when try to subscribe.
AgoraRtmErrorStorageOperationTimeout | -12018: The storage operation timeout.
AgoraRtmErrorStorageNotAvailable | -12019: The storage service not available.
AgoraRtmErrorPresenceNotConnected | -13001 ~ -14000 : reserved for presence error. -13001: The user is not connected.
AgoraRtmErrorPresenceNotWritable | -13002: The presence is not writable.
AgoraRtmErrorPresenceInvalidArgument | -13003: The argument in presence operation is invalid.
AgoraRtmErrorPresenceCacheTooManyStates | -13004: The cached presence state count exceeds the limit.
AgoraRtmErrorPresenceStateCountOverflow | -13005: The state count exceeds the limit.
AgoraRtmErrorPresenceInvalidStateKey | -13006: The state key is invalid.
AgoraRtmErrorPresenceInvalidStateValue | -13007: The state value is invalid.
AgoraRtmErrorPresenceStateKeySizeOverflow | -13008: The state key length exceeds the limit.
AgoraRtmErrorPresenceStateValueSizeOverflow | -13009: The state value length exceeds the limit.
AgoraRtmErrorPresenceStateDuplicateKey | -13010: The state key already exists.
AgoraRtmErrorPresenceUserNotExist | -13011: The user is not exist.
AgoraRtmErrorPresenceOperationTimeout | -13012: The presence operation timeout.
AgoraRtmErrorPresenceOperationFailed | -13013: The presence operation failed.
AgoraRtmErrorLockOperationFailed | -14001 ~ -15000 : reserved for lock error. -14001: The lock operation failed.
AgoraRtmErrorLockOperationTimeout | -14002: The lock operation timeout.
AgoraRtmErrorLockOperationPerforming | -14003: The lock operation is performing.
AgoraRtmErrorLockAlreadyExist | -14004: The lock already exists.
AgoraRtmErrorLockInvalidName | -14005: The lock name is invalid.
AgoraRtmErrorLockNotAcquired | -14006: The lock is not acquired.
AgoraRtmErrorLockAcquireFailed | -14007: Acquire lock failed.
AgoraRtmErrorLockNotExist | -14008: The lock is not exist.
AgoraRtmErrorLockNotAvailable | -14009: The lock service is not available.
AgoraRtmErrorHistoryOperationFailed | -15001 ~ -16000 : reserved for history error. -15001: The history operation failed.
AgoraRtmErrorHistoryInvalidTimestamp | -15002: The timestamp is invalid.
AgoraRtmErrorHistoryOperationTimeout | -15003: The history operation timeout.
AgoraRtmErrorHistoryOperationNotPermitted | -15004: The history operation is not permitted.
AgoraRtmErrorHistoryNotAvailable | -15005: The history service is not available.

## ◆ AgoraRtmStorageType

enum AgoraRtmStorageType

Storage type indicate the storage event was triggered by user or channel.

Enumerator
AgoraRtmStorageTypeNone | 0: The user storage event.
AgoraRtmStorageTypeUser | 1: The user storage event.
AgoraRtmStorageTypeChannel | 2: The channel storage event.

## ◆ AgoraRtmLockEventType

enum AgoraRtmLockEventType

The lock event type, indicate lock operation

Enumerator
AgoraRtmLockEventTypeNone | 0: Unknown event type
AgoraRtmLockEventTypeSnapshot | 1: Triggered when user subscribe lock state
AgoraRtmLockEventTypeLockSet | 2: Triggered when a remote user set lock
AgoraRtmLockEventTypeLockRemoved | 3: Triggered when a remote user remove lock
AgoraRtmLockEventTypeLockAcquired | 4: Triggered when a remote user acquired lock
AgoraRtmLockEventTypeLockReleased | 5: Triggered when a remote user released lock
AgoraRtmLockEventTypeLockExpired | 6: Triggered when user reconnect to rtm service, detect the lock has been acquired and released by others.

## ◆ AgoraRtmProxyType

enum AgoraRtmProxyType

The proxy type

Enumerator
AgoraRtmProxyTypeNone | 0: Link without proxy
AgoraRtmProxyTypeHttp | 1: Link with http proxy
AgoraRtmProxyTypeCloudTcp | 2: Link with tcp cloud proxy

## ◆ AgoraRtmServiceType

enum AgoraRtmServiceType

Enumerator
AgoraRtmServiceTypeNone | None rtm service.
AgoraRtmServiceTypeMessage | The basic functionality of rtm service.
AgoraRtmServiceTypeStream | The advanced functionality of rtm service.

## ◆ AgoraRtmProtocolType

enum AgoraRtmProtocolType

Rtm protocol type for underlying connection.

Enumerator
AgoraRtmProtocolTypeTcpUdp | TCP and UDP (default).
AgoraRtmProtocolTypeTcpOnly | Use TCP only.

## ◆ AgoraRtmLinkState

enum AgoraRtmLinkState

Rtm link state.

Enumerator
AgoraRtmLinkStateIdle | The initial state.
AgoraRtmLinkStateConnecting | The SDK is connecting to the server.
AgoraRtmLinkStateConnected | The SDK has connected to the server.
AgoraRtmLinkStateDisconnected | The SDK is disconnected from the server.
AgoraRtmLinkStateSuspended | The SDK link is suspended.
AgoraRtmLinkStateFailed | The SDK is failed to connect to the server.

## ◆ AgoraRtmLinkStateChangeReason

enum AgoraRtmLinkStateChangeReason

Rtm link state change reason.

Enumerator
AgoraRtmLinkStateChangeReasonUnknown | Unknown reason.
AgoraRtmLinkStateChangeReasonLogin | Login.
AgoraRtmLinkStateChangeReasonLoginSuccess | Login success.
AgoraRtmLinkStateChangeReasonLoginTimeout | Login timeout.
AgoraRtmLinkStateChangeReasonLoginNotAuthorized | Login not authorized.
AgoraRtmLinkStateChangeReasonLoginRejected | Login rejected.
AgoraRtmLinkStateChangeReasonRelogin | Re-login.
AgoraRtmLinkStateChangeReasonLogout | Logout.
AgoraRtmLinkStateChangeReasonAutoReconnect | Auto reconnect.
AgoraRtmLinkStateChangeReasonReconnectTimeout | Reconnect timeout.
AgoraRtmLinkStateChangeReasonReconnectSuccess | Reconnect success.
AgoraRtmLinkStateChangeReasonJoin | Join.
AgoraRtmLinkStateChangeReasonJoinSuccess | Join success.
AgoraRtmLinkStateChangeReasonJoinFailed | Join failed.
AgoraRtmLinkStateChangeReasonRejoin | Rejoin.
AgoraRtmLinkStateChangeReasonLeave | Leave.
AgoraRtmLinkStateChangeReasonInvalidToken | Invalid token.
AgoraRtmLinkStateChangeReasonTokenExpired | Token expired.
AgoraRtmLinkStateChangeReasonInconsistentAppId | Inconsistent app ID.
AgoraRtmLinkStateChangeReasonInvalidChannelName | Invalid channel name.
AgoraRtmLinkStateChangeReasonInvalidUserId | Invalid user ID.
AgoraRtmLinkStateChangeReasonNotInitialized | Not initialized.
AgoraRtmLinkStateChangeReasonRtmServiceNotConnected | Rtm service not connected.
AgoraRtmLinkStateChangeReasonChannelInstanceExceedLimitation | Channel instance exceed limitation.
AgoraRtmLinkStateChangeReasonOperationRateExceedLimitation | Operation rate exceed limitation.
AgoraRtmLinkStateChangeReasonChannelInErrorState | Channel in error state.
AgoraRtmLinkStateChangeReasonPresenceNotConnected | Presence not connected.
AgoraRtmLinkStateChangeReasonSameUidLogin | Same UID login.
AgoraRtmLinkStateChangeReasonKickedOutByServer | Kicked out by server.
AgoraRtmLinkStateChangeReasonKeepAliveTimeout | Keep alive timeout.
AgoraRtmLinkStateChangeReasonConnectionError | Connection error.
AgoraRtmLinkStateChangeReasonPresenceNotReady | Presence not ready.
AgoraRtmLinkStateChangeReasonNetworkChange | Network change.
AgoraRtmLinkStateChangeReasonServiceNotSupported | Service not supported.
AgoraRtmLinkStateChangeReasonStreamChannelNotAvailable | Stream channel not available.
AgoraRtmLinkStateChangeReasonStorageNotAvailable | Storage not available.
AgoraRtmLinkStateChangeReasonLockNotAvailable | Lock not available.
AgoraRtmLinkStateChangeReasonLoginTooFrequent | Login too frequent.

## ◆ AgoraRtmLinkOperation

enum AgoraRtmLinkOperation

Rtm link operation.

Enumerator
AgoraRtmLinkOperationLogin | Login.
AgoraRtmLinkOperationLogout | Logout.
AgoraRtmLinkOperationJoin | Join
AgoraRtmLinkOperationLeave | Leave.
AgoraRtmLinkOperationServerReject | Server reject
AgoraRtmLinkOperationAutoReconnect | Auto reconnect
AgoraRtmLinkOperationReconnected | Reconnected
AgoraRtmLinkOperationHeartbeatTimeout | Heartbeat timeout
AgoraRtmLinkOperationServerTimeout | Server timeout
AgoraRtmLinkOperationNetworkChange | Network change

## ◆ AgoraRtmTopicEventType

enum AgoraRtmTopicEventType

Topic event type.

Enumerator
AgoraRtmTopicEventTypeNone | 0: Unknown event type
AgoraRtmTopicEventTypeSnapshot | 1: The topic snapshot of this channel
AgoraRtmTopicEventTypeRemoteJoinTopic | 2: Triggered when remote user join a topic
AgoraRtmTopicEventTypeRemoteLeaveTopic | 3: Triggered when remote user leave a topic

## ◆ AgoraRtmPresenceEventType

enum AgoraRtmPresenceEventType

Presence event type.

Enumerator
AgoraRtmPresenceEventTypeNone | 0: Unknown event type
AgoraRtmPresenceEventTypeSnapshot | 1: The presence snapshot of this channel
AgoraRtmPresenceEventTypeInterval | 2: The presence event triggered in interval mode
AgoraRtmPresenceEventTypeRemoteJoinChannel | 3: Triggered when remote user join channel
AgoraRtmPresenceEventTypeRemoteLeaveChannel | 4: Triggered when remote user leave channel
AgoraRtmPresenceEventTypeRemoteConnectionTimeout | 5: Triggered when remote user's connection timeout
AgoraRtmPresenceEventTypeRemoteStateChanged | 6: Triggered when user changed state
AgoraRtmPresenceEventTypeErrorOutOfService | 7: Triggered when user joined channel without presence service

## ◆ AgoraRtmJoinChannelFeature

enum AgoraRtmJoinChannelFeature

join stream channel features

Enumerator
AgoraRtmJoinChannelFeatureNone | 0: join stream channel with no other features.
AgoraRtmJoinChannelFeaturePresence | 1: join stream channel with presence event notification.
AgoraRtmJoinChannelFeatureMetadata | 1 << 1: join stream channel with metadata event notification.
AgoraRtmJoinChannelFeatureLock | 1 << 2: join stream channel with lock event notification.
AgoraRtmJoinChannelFeatureBeQuiet | Whether to subscribe channel in quiet mode Quiet mode means remote user will not receive any notification when we subscribe or unsubscribe or change our presence state

## ◆ AgoraRtmSubscribeChannelFeature

enum AgoraRtmSubscribeChannelFeature

subscribe message channel features

Enumerator
AgoraRtmSubscribeChannelFeatureNone | 0: subscribe message channel with no other features.
AgoraRtmSubscribeChannelFeaturePresence | 1: subscribe message channel with presence event notification.
AgoraRtmSubscribeChannelFeatureMetadata | 1 << 1: subscribe message channel with metadata event notification.
AgoraRtmSubscribeChannelFeatureMessage | 1 << 2: subscribe message channel with message event notification.
AgoraRtmSubscribeChannelFeatureLock | 1 << 3: subscribe message channel with lock event notification.
AgoraRtmSubscribeChannelFeatureBeQuiet | Whether to join channel in quiet mode Quiet mode means remote user will not receive any notification when we join or leave or change our presence state

## ◆ AgoraRtmClientConnectionState

enum AgoraRtmClientConnectionState

Connection states between rtm sdk and agora server.

Enumerator
AgoraRtmClientConnectionStateDisconnected | 1: The SDK is disconnected with server.
AgoraRtmClientConnectionStateConnecting | 2: The SDK is connecting to the server.
AgoraRtmClientConnectionStateConnected | 3: The SDK is connected to the server and has joined a channel. You can now publish or subscribe to a track in the channel.
AgoraRtmClientConnectionStateReconnecting | 4: The SDK keeps rejoining the channel after being disconnected from the channel, probably because of network issues.
AgoraRtmClientConnectionStateFailed | 5: The SDK fails to connect to the server or join the channel.

## ◆ AgoraRtmClientConnectionChangeReason

enum AgoraRtmClientConnectionChangeReason

Reasons for connection state change.

Enumerator
AgoraRtmClientConnectionChangedConnecting | 0: The SDK is connecting to the server.
AgoraRtmClientConnectionChangedJoinSuccess | 1: The SDK has joined the channel successfully.
AgoraRtmClientConnectionChangedInterrupted | 2: The connection between the SDK and the server is interrupted.
AgoraRtmClientConnectionChangedBannedByServer | 3: The connection between the SDK and the server is banned by the server.
AgoraRtmClientConnectionChangedJoinFailed | 4: The SDK fails to join the channel for more than 20 minutes and stops reconnecting to the channel.
AgoraRtmClientConnectionChangedLeaveChannel | 5: The SDK has left the channel.
AgoraRtmClientConnectionChangedInvalidAppId | 6: The connection fails because the App ID is not valid.
AgoraRtmClientConnectionChangedInvalidChannelName | 7: The connection fails because the channel name is not valid.
AgoraRtmClientConnectionChangedInvalidToken | 8: The connection fails because the token is not valid.
AgoraRtmClientConnectionChangedTokenExpired | 9: The connection fails because the token has expired.
AgoraRtmClientConnectionChangedRejectedByServer | 10: The connection is rejected by the server.
AgoraRtmClientConnectionChangedSettingProxyServer | 11: The connection changes to reconnecting because the SDK has set a proxy server.
AgoraRtmClientConnectionChangedRenewToken | 12: When the connection state changes because the app has renewed the token.
AgoraRtmClientConnectionChangedClientIpAddressChanged | 13: The IP Address of the app has changed. A change in the network type or IP/Port changes the IP address of the app.
AgoraRtmClientConnectionChangedKeepAliveTimeout | 14: A timeout occurs for the keep-alive of the connection between the SDK and the server.
AgoraRtmClientConnectionChangedRejoinSuccess | 15: The SDK has rejoined the channel successfully.
AgoraRtmClientConnectionChangedChangedLost | 16: The connection between the SDK and the server is lost.
AgoraRtmClientConnectionChangedEchoTest | 17: The change of connection state is caused by echo test.
AgoraRtmClientConnectionChangedClientIpAddressChangedByUser | 18: The local IP Address is changed by user.
AgoraRtmClientConnectionChangedSameUidLogin | 19: The connection is failed due to join the same channel on another device with the same uid.
AgoraRtmClientConnectionChangedTooManyBroadcasters | 20: The connection is failed due to too many broadcasters in the channel.
AgoraRtmClientConnectionChangedLicenseValidationFailure | 21: The connection is failed due to license validation failure.
AgoraRtmClientConnectionChangedCertificationVerifyFailure | 22: The connection is failed due to certification verify failure.
AgoraRtmClientConnectionChangedStreamChannelNotAvailable | 23: The connection is failed due to user vid not support stream channel.
AgoraRtmClientConnectionChangedInconsistentAppId | 24: The connection is failed due to token and appid inconsistent.
AgoraRtmClientConnectionChangedLoginSuccess | 10001: The connection of rtm edge service has been successfully established.
AgoraRtmClientConnectionChangedLogout | 10002: User logout Agora RTM system.
AgoraRtmClientConnectionChangedPresenceNotReady | 10003: User log out Agora RTM system.

## ◆ AgoraRtmChannelType

enum AgoraRtmChannelType

rtm channel type.

Enumerator
AgoraRtmChannelTypeNone | 0: Unknown channel type.
AgoraRtmChannelTypeMessage | 1: message channel.
AgoraRtmChannelTypeStream | 2: stream channel.
AgoraRtmChannelTypeUser | 3: User.

## ◆ AgoraRtmStorageEventType

enum AgoraRtmStorageEventType

The storage event type, indicate storage operation

Enumerator
AgoraRtmStorageEventTypeNone | 0: Unknown event type.
AgoraRtmStorageEventTypeSnapshot | 1: Triggered when user subscribe user metadata state or join channel with options.withMetadata = true
AgoraRtmStorageEventTypeSet | 2: Triggered when a remote user set metadata
AgoraRtmStorageEventTypeUpdate | 3: Triggered when a remote user update metadata
AgoraRtmStorageEventTypeRemove | 4: Triggered when a remote user remove metadata

## ◆ AgoraRtmPresenceType

enum AgoraRtmPresenceType

RTM presence type.

Enumerator
AgoraRtmPresenceTypeRemoteJoinChannel | 0: Triggered when remote user join channel
AgoraRtmPresenceTypeRemoteLeaveChannel | 1: Triggered when remote leave join channel
AgoraRtmPresenceTypeRemoteConnectionTimeout | 2: Triggered when remote user's connection timeout
AgoraRtmPresenceTypeRemoteJoinTopic | 3: Triggered when remote user join a topic
AgoraRtmPresenceTypeRemoteLeaveTopic | 4: Triggered when remote user leave a topic
AgoraRtmPresenceTypeSelfJoinChannel | 5: Triggered when local user join channel

## ◆ AgoraRtmMessageQos

enum AgoraRtmMessageQos

The qos of rtm message.

Enumerator
AgoraRtmMessageQosUnordered | not ensure messages arrive in order.
AgoraRtmMessageQosOrdered | ensure messages arrive in order.

## ◆ AgoraRtmLogLevel

enum AgoraRtmLogLevel

Enumerator
AgoraRtmLogLevelNone | Do not output any log file.
AgoraRtmLogLevelInfo | (Recommended) Output log files of the Info level.
AgoraRtmLogLevelWarn | Output log files of the Warning level.
AgoraRtmLogLevelError | Output log files of the Error level.
AgoraRtmLogLevelFatal | Output log files of the Critical level.