ICCommLib is now two separate entities. ICCommLib the library, and a new Object: ICComm.

-- Constant --
Constant: ICCommLib.knInvalidICCommMessageId
The ID returned when an invalid message is sent.

-- Methods --
Method: ICCommLib.JoinChannel(strChannelName, eChannelType, guildContext)
Allows the player to join an ICComm channel with the specified name. eChannelType uses the ICCommLib.CodeEnumICCommChannelType enum. If the channel type is Guild, then the guild that is using the channel must be passed in as the third parameter. Group messages are the only messages to go cross realm. A client can only belong to a guild channel of a certain name for one guild. - This means that a client cannot be in the guild channel "Bobs" with both a circle and a guild. When registered for a guild channel and you leave the guild, you will be automatically removed from that guilds channel.
Params:
strChannelName - String - Name for the ICComm Channel.
eChannelType - enum - CodeEnumICCommChannelType entry designatign the type of channel. See CodeEnumICCommChannelType for more on this.
guildContext - String - Name of guild
Method: ICCommLib.GetUploadCapacityByType(eChannelType)
returns the upload capacity for ICComm Channels of the specified type. eChannelType uses theICCommLib.CodeEnumICCommChannelType enum.
Params:
eChannelType - enum - CodeEnumICCommChannelType to return.
Returns:

Method: ICCommLib. GetDownloadCapacityByType(eChannelType)
returns the download capacity for ICComm Channels of the specified type. A limit can be surpassed up to 50KB for the single message that surpasses the limit but it will take twice as long for the throttle to be removed.
Params:
eChannelType - enum - CodeEnumICCommChannelType to return.

-- Enums --
Enum: ICCommLib.CodeEnumICCommChannelType
The different group types that an ICComm Channel can broadcast to.
CodeEnumICCommChannelType = {
Global = 1,
Group = 2,
Guild = 3
},
Enum: ICCommLib.CodeEnumICCommJoinResult
This contains any error messages that are fired when the player tries to join or leave an ICComm channel
CodeEnumICCommJoinResult = {
BadName = 4,
Join = 5,
Left = 6,
MissingEntitlement = 7,
NoGroup = 3,
NoGuild = 2,
TooManyChannels = 1
},
Enum: ICCommLib.CodeEnumICCommMessageResult
The success and error messages that are sent when the player attempts to send a message
CodeEnumICCommMessageResult = {
InvalidText = 7,
MissingEntitlement = 8,
NotInChannel = 3,
Sent = 1,
Throttled = 2
},

-- Events --
Event: JoinResultEvent(iccomm, eResult)
Fires whenever a player attempts to join or leave the specified ICComm channel.
Params:
iccomm - object - The comm object that received the result.
eResult - enum - compare with CodeEnumICCommJoinResult to find out join result.
Event: SendMessageResultEvent(iccomm, eResult, idMessage)
Informs the addon of whether or not the message was successfully sent.
Params:
iccomm - object - The comm object that received the result.
eResult - enum - compare with CodeEnumICCommJoinResult to find out join result.
idMessage - number - a unique ID for the message.
Event: ReceivedMessageEvent(channel, strMessage, strSender)
Fired whenever the player receives a new message.
Params:
channel - String - name of channel receiving message
strMessage - String - contents of message
strSender - String - Name fo sender
Event: ThrottledEvent(iccomm, strSender, idMessage)
Fired whenever the message that a player tried to send was throttled.
Params:
iccomm - object - The comm object that received the result.
strSender - String - Who tried to send (Could be send to, not a lot fo documentation from CRB).
idMessage - number - id of message


-- ICComm Object Functions --
Function: ICComm.SetJoinResultFunction(strFunctionName, tContext)
Sets the function that will handle the JoinResultEvent for the addon.
Params:
strFunctionName - String - Name of the handler function
tContext - table - Addon that the function resides in.
Returns:
bJoinFuncSet - boolean - true if set successfully
Function: ICComm.SendMessage(strMessage)
Sends a message to every client listening to this channel.
A client can only send 25 messages per channel type per second
Params:
strMessage - String - The message to send
Returns:
idMessage - number - message’s ID
Function: ICComm.SetSendMessageResultFunction(strFunctionName, tContext)
Sets the function that will handle the SendMessageResultEvent for the addon.
Params:
strFunctionName - String - Name of the handler function
tContext - table - Addon that the function resides in.
Returns:
bSendResultFuncSet - boolean - true if set successfully
Function: ICComm.SetReceivedMessageFunction(strFunctionName, tContext)
Defines the function that will receive messages sent from other clients.
Params:
strFunctionName - String - Name of the handler function
tContext - table - Addon that the function resides in.
Returns:
bRecResultFuncSet - boolean - true if set successfully
Function: ICComm.SetThrottledFunction(strFunctionName, tContext)
Sets the function that will handle the ThrottledEvent. tContext is the addon that the event handler belongs to.
Params:
strFunctionName - String - Name of the handler function
tContext - table - Addon that the function resides in.
Returns:
bThrotResultFuncSet - boolean - true if set successfully
Function: ICComm.SendPrivateMessage(strRecipient, strMessage)
Sends a message to a specific user that is registered with the ICComm Channel.
Group private messages must have the realm name appended to the receiver's character name.
Params:
strRecipient - String - person to send to
strMessage - String - The message to send
Returns:
idMessage - number - message’s ID
Function: ICComm.GetName()
Returns:
strChannelName - String - name of channel.
Function: ICComm.GetType()
Returns:
eChannelType - enum - the ICComm Channel’s type. The return value uses the CodeEnumICCommChannelType
Function: ICComm.IsReady()
Returns:
bIsReady - boolean - Determines if the ICComm Channel is ready to accept messages.