Amazon Kinesis Webrtc C SDK
Loading...
Searching...
No Matches
LwsApiCalls.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  __LwsCallInfo
struct  SignalingMessageWrapper

Macros

#define SIGNALING_SERVICE_API_CALL_CONNECTION_TIMEOUT   (2 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define SIGNALING_SERVICE_API_CALL_COMPLETION_TIMEOUT   (5 * HUNDREDS_OF_NANOS_IN_A_SECOND)
#define SIGNALING_SERVICE_API_CALL_TIMEOUT_IN_SECONDS    ((SIGNALING_SERVICE_API_CALL_CONNECTION_TIMEOUT + SIGNALING_SERVICE_API_CALL_COMPLETION_TIMEOUT) / HUNDREDS_OF_NANOS_IN_A_SECOND)
#define SIGNALING_SERVICE_TCP_KEEPALIVE_IN_SECONDS   3
#define SIGNALING_SERVICE_TCP_KEEPALIVE_PROBE_COUNT   3
#define SIGNALING_SERVICE_TCP_KEEPALIVE_PROBE_INTERVAL_IN_SECONDS   1
#define SIGNALING_SERVICE_WSS_PING_PONG_INTERVAL_IN_SECONDS   10
#define SIGNALING_SERVICE_WSS_HANGUP_IN_SECONDS   7200
#define PROTOCOL_INDEX_HTTPS   0
#define PROTOCOL_INDEX_WSS   1
#define CREATE_SIGNALING_CHANNEL_API_POSTFIX   "/createSignalingChannel"
#define DESCRIBE_SIGNALING_CHANNEL_API_POSTFIX   "/describeSignalingChannel"
#define GET_SIGNALING_CHANNEL_ENDPOINT_API_POSTFIX   "/getSignalingChannelEndpoint"
#define DELETE_SIGNALING_CHANNEL_API_POSTFIX   "/deleteSignalingChannel"
#define GET_ICE_CONFIG_API_POSTFIX   "/v1/get-ice-server-config"
#define JOIN_STORAGE_SESSION_API_POSTFIX   "/joinStorageSession"
#define DESCRIBE_MEDIA_STORAGE_CONF_API_POSTFIX   "/describeMediaStorageConfiguration"
#define UPDATE_MEDIA_STORAGE_CONF_API_POSTFIX   "/updateMediaStorageConfiguration"
#define SIGNALING_CHANNEL_PROTOCOL   "\"WSS\", \"HTTPS\""
#define SIGNALING_CHANNEL_PROTOCOL_W_MEDIA_STORAGE   "\"WSS\", \"HTTPS\", \"WEBRTC\""
#define DESCRIBE_CHANNEL_PARAM_JSON_TEMPLATE   "{\n\t\"ChannelName\": \"%s\"\n}"
#define DESCRIBE_MEDIA_STORAGE_CONF_PARAM_JSON_TEMPLATE   "{\n\t\"ChannelARN\": \"%s\"\n}"
#define DELETE_CHANNEL_PARAM_JSON_TEMPLATE
#define CREATE_CHANNEL_PARAM_JSON_TEMPLATE
#define TAG_PARAM_JSON_OBJ_TEMPLATE   "\n\t\t{\"Key\": \"%s\", \"Value\": \"%s\"},"
#define TAGS_PARAM_JSON_TEMPLATE   ",\n\t\"Tags\": [%s\n\t]"
#define GET_CHANNEL_ENDPOINT_PARAM_JSON_TEMPLATE
#define GET_ICE_CONFIG_PARAM_JSON_TEMPLATE
#define SIGNALING_JOIN_STORAGE_SESSION_MASTER_PARAM_JSON_TEMPLATE   "{\n\t\"channelArn\": \"%s\"\n}"
#define SIGNALING_JOIN_STORAGE_SESSION_VIEWER_PARAM_JSON_TEMPLATE
#define SIGNALING_UPDATE_STORAGE_CONFIG_PARAM_JSON_TEMPLATE
#define SIGNALING_ROLE_PARAM_NAME   "X-Amz-Role"
#define SIGNALING_CHANNEL_NAME_PARAM_NAME   "X-Amz-ChannelName"
#define SIGNALING_CHANNEL_ARN_PARAM_NAME   "X-Amz-ChannelARN"
#define SIGNALING_CLIENT_ID_PARAM_NAME   "X-Amz-ClientId"
#define SIGNALING_ENDPOINT_MASTER_URL_WSS_TEMPLATE   "%s?%s=%s"
#define SIGNALING_ENDPOINT_VIEWER_URL_WSS_TEMPLATE   "%s?%s=%s&%s=%s"
#define SIGNALING_SDP_TYPE_OFFER   "SDP_OFFER"
#define SIGNALING_SDP_TYPE_ANSWER   "SDP_ANSWER"
#define SIGNALING_ICE_CANDIDATE   "ICE_CANDIDATE"
#define SIGNALING_GO_AWAY   "GO_AWAY"
#define SIGNALING_RECONNECT_ICE_SERVER   "RECONNECT_ICE_SERVER"
#define SIGNALING_STATUS_RESPONSE   "STATUS_RESPONSE"
#define SIGNALING_MESSAGE_UNKNOWN   "UNKNOWN"
#define MAX_SIGNALING_MESSAGE_TYPE_LEN   ARRAY_SIZE(SIGNALING_RECONNECT_ICE_SERVER)
#define MAX_SIGNALING_STATUS_MESSAGE_LEN   16
#define SIGNALING_SEND_MESSAGE_TEMPLATE
#define SIGNALING_SEND_MESSAGE_TEMPLATE_WITH_CORRELATION_ID
#define SIGNALING_ICE_SERVER_LIST_TEMPLATE_START
#define SIGNALING_ICE_SERVER_LIST_TEMPLATE_END   "\n\t]"
#define SIGNALING_ICE_SERVER_TEMPLATE
#define MAX_DATE_HEADER_BUFFER_LENGTH   64
#define MIN_CLOCK_SKEW_TIME_TO_CORRECT   (5 * HUNDREDS_OF_NANOS_IN_A_MINUTE)
#define MAX_CLOCK_SKEW_RETRIES_PER_CALL   1
#define ICE_SERVER_INFO_TEMPLATE_BLOAT_SIZE   128
#define ICE_SERVER_URI_BLOAT_SIZE   10
#define MAX_ICE_SERVER_URI_STR_LEN   (MAX_ICE_CONFIG_URI_COUNT * (MAX_ICE_CONFIG_URI_LEN + ICE_SERVER_URI_BLOAT_SIZE))
#define MAX_ICE_SERVER_INFO_STR_LEN    (MAX_ICE_SERVER_URI_STR_LEN + MAX_ICE_CONFIG_USER_NAME_LEN + MAX_ICE_CONFIG_CREDENTIAL_LEN + ICE_SERVER_INFO_TEMPLATE_BLOAT_SIZE)
#define MAX_ICE_SERVER_INFOS_STR_LEN   (MAX_ICE_CONFIG_COUNT * MAX_ICE_SERVER_INFO_STR_LEN)
#define MAX_ENCODED_ICE_SERVER_INFOS_STR_LEN   (MAX_ICE_SERVER_INFOS_STR_LEN + ICE_SERVER_INFO_TEMPLATE_BLOAT_SIZE)
#define LWS_ALIGN_BYTES   16
#define LWS_SCRATCH_BUFFER_SIZE   (MAX_JSON_PARAMETER_STRING_LEN + LWS_ALIGN_BYTES)
#define LWS_MESSAGE_BUFFER_SIZE   (SIZEOF(CHAR) * (MAX_SIGNALING_MESSAGE_LEN + LWS_ALIGN_BYTES))
#define AWS_SIG_V4_HEADER_HOST   (PCHAR) "host"
#define BLOCK_ON_CORRELATION_ID   FALSE
#define LWS_SERVICE_LOOP_ITERATION_WAIT   (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)
#define LWS_SERVICE_LOCK_RETRY_WAIT   (1 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)
#define CHECK_SIGNALING_CREDENTIALS_EXPIRATION(p)
#define WSS_SIGNALING_PROTOCOL_INDEX   1

Typedefs

typedef struct __LwsCallInfo LwsCallInfo
typedef struct SignalingMessageWrapper * PSignalingMessageWrapper

Functions

VOID lwsSignalHandler (INT32)
STATUS lwsCompleteSync (PLwsCallInfo)
PVOID lwsListenerHandler (PVOID)
PVOID reconnectHandler (PVOID)
STATUS startReconnectHandler (PSignalingClient)
INT32 lwsHttpCallbackRoutine (PVOID, INT32, PVOID, PVOID, size_t)
INT32 lwsWssCallbackRoutine (PVOID, INT32, PVOID, PVOID, size_t)
BOOL isCallResultSignatureExpired (PCallInfo)
BOOL isCallResultSignatureNotYetCurrent (PCallInfo)
INT64 recordClockSkewCorrection (PSignalingClient, UINT64, UINT64)
SERVICE_CALL_RESULT getWssUpgradeFailureResult (PSignalingClient, PVOID)
STATUS describeChannelLws (PSignalingClient, UINT64)
STATUS createChannelLws (PSignalingClient, UINT64)
STATUS getChannelEndpointLws (PSignalingClient, UINT64)
STATUS getIceConfigLws (PSignalingClient, UINT64)
STATUS connectSignalingChannelLws (PSignalingClient, UINT64)
STATUS joinStorageSessionLws (PSignalingClient, UINT64)
STATUS describeMediaStorageConfLws (PSignalingClient, UINT64)
STATUS deleteChannelLws (PSignalingClient, UINT64)
STATUS createLwsCallInfo (PSignalingClient, PRequestInfo, UINT32, PLwsCallInfo *)
STATUS freeLwsCallInfo (PLwsCallInfo *)
PVOID receiveLwsMessageWrapper (PVOID)
STATUS sendLwsMessage (PSignalingClient, SIGNALING_MESSAGE_TYPE, PCHAR, PCHAR, UINT32, PCHAR, UINT32)
STATUS writeLwsData (PSignalingClient, BOOL)
STATUS terminateLwsListenerLoop (PSignalingClient)
STATUS receiveLwsMessage (PSignalingClient, PCHAR, UINT32)
STATUS getMessageTypeFromString (PCHAR, UINT32, SIGNALING_MESSAGE_TYPE *)
PCHAR getMessageTypeInString (SIGNALING_MESSAGE_TYPE)
STATUS wakeLwsServiceEventLoop (PSignalingClient, UINT32)
STATUS terminateConnectionWithStatus (PSignalingClient, SERVICE_CALL_RESULT)
STATUS configureLwsLogging (UINT32 kvsLogLevel)
STATUS parseIceConfigResponse (PCHAR, UINT32, UINT8, PIceConfigInfo, PUINT32)
STATUS parseSignalingMessage (PCHAR, UINT32, PReceivedSignalingMessage)

Macro Definition Documentation

◆ AWS_SIG_V4_HEADER_HOST

#define AWS_SIG_V4_HEADER_HOST   (PCHAR) "host"

◆ BLOCK_ON_CORRELATION_ID

#define BLOCK_ON_CORRELATION_ID   FALSE

◆ CHECK_SIGNALING_CREDENTIALS_EXPIRATION

#define CHECK_SIGNALING_CREDENTIALS_EXPIRATION ( p)
Value:
do { \
if (SIGNALING_GET_CURRENT_TIME((p)) >= (p)->pAwsCredentials->expiration) { \
ATOMIC_STORE(&(p)->result, (SIZE_T) SERVICE_CALL_NOT_AUTHORIZED); \
CHK(FALSE, retStatus); \
} \
} while (FALSE)
#define SIGNALING_GET_CURRENT_TIME(pClient)
Definition Signaling.h:85

◆ CREATE_CHANNEL_PARAM_JSON_TEMPLATE

#define CREATE_CHANNEL_PARAM_JSON_TEMPLATE
Value:
"{\n\t\"ChannelName\": \"%s\"," \
"\n\t\"ChannelType\": \"%s\"," \
"\n\t\"SingleMasterConfiguration\": {" \
"\n\t\t\"MessageTtlSeconds\": %" PRIu64 "\n\t}" \
"%s\n}"

◆ CREATE_SIGNALING_CHANNEL_API_POSTFIX

#define CREATE_SIGNALING_CHANNEL_API_POSTFIX   "/createSignalingChannel"

◆ DELETE_CHANNEL_PARAM_JSON_TEMPLATE

#define DELETE_CHANNEL_PARAM_JSON_TEMPLATE
Value:
"{\n\t\"ChannelARN\": \"%s\"," \
"\n\t\"CurrentVersion\": \"%s\"\n}"

◆ DELETE_SIGNALING_CHANNEL_API_POSTFIX

#define DELETE_SIGNALING_CHANNEL_API_POSTFIX   "/deleteSignalingChannel"

◆ DESCRIBE_CHANNEL_PARAM_JSON_TEMPLATE

#define DESCRIBE_CHANNEL_PARAM_JSON_TEMPLATE   "{\n\t\"ChannelName\": \"%s\"\n}"

◆ DESCRIBE_MEDIA_STORAGE_CONF_API_POSTFIX

#define DESCRIBE_MEDIA_STORAGE_CONF_API_POSTFIX   "/describeMediaStorageConfiguration"

◆ DESCRIBE_MEDIA_STORAGE_CONF_PARAM_JSON_TEMPLATE

#define DESCRIBE_MEDIA_STORAGE_CONF_PARAM_JSON_TEMPLATE   "{\n\t\"ChannelARN\": \"%s\"\n}"

◆ DESCRIBE_SIGNALING_CHANNEL_API_POSTFIX

#define DESCRIBE_SIGNALING_CHANNEL_API_POSTFIX   "/describeSignalingChannel"

◆ GET_CHANNEL_ENDPOINT_PARAM_JSON_TEMPLATE

#define GET_CHANNEL_ENDPOINT_PARAM_JSON_TEMPLATE
Value:
"{\n\t\"ChannelARN\": \"%s\"," \
"\n\t\"SingleMasterChannelEndpointConfiguration\": {" \
"\n\t\t\"Protocols\": [%s]," \
"\n\t\t\"Role\": \"%s\"" \
"\n\t}\n}"

◆ GET_ICE_CONFIG_API_POSTFIX

#define GET_ICE_CONFIG_API_POSTFIX   "/v1/get-ice-server-config"

◆ GET_ICE_CONFIG_PARAM_JSON_TEMPLATE

#define GET_ICE_CONFIG_PARAM_JSON_TEMPLATE
Value:
"{\n\t\"ChannelARN\": \"%s\"," \
"\n\t\"ClientId\": \"%s\"," \
"\n\t\"Service\": \"TURN\"" \
"\n}"

◆ GET_SIGNALING_CHANNEL_ENDPOINT_API_POSTFIX

#define GET_SIGNALING_CHANNEL_ENDPOINT_API_POSTFIX   "/getSignalingChannelEndpoint"

◆ ICE_SERVER_INFO_TEMPLATE_BLOAT_SIZE

#define ICE_SERVER_INFO_TEMPLATE_BLOAT_SIZE   128

◆ ICE_SERVER_URI_BLOAT_SIZE

#define ICE_SERVER_URI_BLOAT_SIZE   10

◆ JOIN_STORAGE_SESSION_API_POSTFIX

#define JOIN_STORAGE_SESSION_API_POSTFIX   "/joinStorageSession"

◆ LWS_ALIGN_BYTES

#define LWS_ALIGN_BYTES   16

◆ LWS_MESSAGE_BUFFER_SIZE

#define LWS_MESSAGE_BUFFER_SIZE   (SIZEOF(CHAR) * (MAX_SIGNALING_MESSAGE_LEN + LWS_ALIGN_BYTES))

◆ LWS_SCRATCH_BUFFER_SIZE

#define LWS_SCRATCH_BUFFER_SIZE   (MAX_JSON_PARAMETER_STRING_LEN + LWS_ALIGN_BYTES)

◆ LWS_SERVICE_LOCK_RETRY_WAIT

#define LWS_SERVICE_LOCK_RETRY_WAIT   (1 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)

◆ LWS_SERVICE_LOOP_ITERATION_WAIT

#define LWS_SERVICE_LOOP_ITERATION_WAIT   (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND)

◆ MAX_CLOCK_SKEW_RETRIES_PER_CALL

#define MAX_CLOCK_SKEW_RETRIES_PER_CALL   1

◆ MAX_DATE_HEADER_BUFFER_LENGTH

#define MAX_DATE_HEADER_BUFFER_LENGTH   64

◆ MAX_ENCODED_ICE_SERVER_INFOS_STR_LEN

#define MAX_ENCODED_ICE_SERVER_INFOS_STR_LEN   (MAX_ICE_SERVER_INFOS_STR_LEN + ICE_SERVER_INFO_TEMPLATE_BLOAT_SIZE)

◆ MAX_ICE_SERVER_INFO_STR_LEN

◆ MAX_ICE_SERVER_INFOS_STR_LEN

#define MAX_ICE_SERVER_INFOS_STR_LEN   (MAX_ICE_CONFIG_COUNT * MAX_ICE_SERVER_INFO_STR_LEN)

◆ MAX_ICE_SERVER_URI_STR_LEN

#define MAX_ICE_SERVER_URI_STR_LEN   (MAX_ICE_CONFIG_URI_COUNT * (MAX_ICE_CONFIG_URI_LEN + ICE_SERVER_URI_BLOAT_SIZE))

◆ MAX_SIGNALING_MESSAGE_TYPE_LEN

#define MAX_SIGNALING_MESSAGE_TYPE_LEN   ARRAY_SIZE(SIGNALING_RECONNECT_ICE_SERVER)

◆ MAX_SIGNALING_STATUS_MESSAGE_LEN

#define MAX_SIGNALING_STATUS_MESSAGE_LEN   16

◆ MIN_CLOCK_SKEW_TIME_TO_CORRECT

#define MIN_CLOCK_SKEW_TIME_TO_CORRECT   (5 * HUNDREDS_OF_NANOS_IN_A_MINUTE)

◆ PROTOCOL_INDEX_HTTPS

#define PROTOCOL_INDEX_HTTPS   0

◆ PROTOCOL_INDEX_WSS

#define PROTOCOL_INDEX_WSS   1

◆ SIGNALING_CHANNEL_ARN_PARAM_NAME

#define SIGNALING_CHANNEL_ARN_PARAM_NAME   "X-Amz-ChannelARN"

◆ SIGNALING_CHANNEL_NAME_PARAM_NAME

#define SIGNALING_CHANNEL_NAME_PARAM_NAME   "X-Amz-ChannelName"

◆ SIGNALING_CHANNEL_PROTOCOL

#define SIGNALING_CHANNEL_PROTOCOL   "\"WSS\", \"HTTPS\""

◆ SIGNALING_CHANNEL_PROTOCOL_W_MEDIA_STORAGE

#define SIGNALING_CHANNEL_PROTOCOL_W_MEDIA_STORAGE   "\"WSS\", \"HTTPS\", \"WEBRTC\""

◆ SIGNALING_CLIENT_ID_PARAM_NAME

#define SIGNALING_CLIENT_ID_PARAM_NAME   "X-Amz-ClientId"

◆ SIGNALING_ENDPOINT_MASTER_URL_WSS_TEMPLATE

#define SIGNALING_ENDPOINT_MASTER_URL_WSS_TEMPLATE   "%s?%s=%s"

◆ SIGNALING_ENDPOINT_VIEWER_URL_WSS_TEMPLATE

#define SIGNALING_ENDPOINT_VIEWER_URL_WSS_TEMPLATE   "%s?%s=%s&%s=%s"

◆ SIGNALING_GO_AWAY

#define SIGNALING_GO_AWAY   "GO_AWAY"

◆ SIGNALING_ICE_CANDIDATE

#define SIGNALING_ICE_CANDIDATE   "ICE_CANDIDATE"

◆ SIGNALING_ICE_SERVER_LIST_TEMPLATE_END

#define SIGNALING_ICE_SERVER_LIST_TEMPLATE_END   "\n\t]"

◆ SIGNALING_ICE_SERVER_LIST_TEMPLATE_START

#define SIGNALING_ICE_SERVER_LIST_TEMPLATE_START
Value:
",\n" \
"\t\"IceServerList\": ["

◆ SIGNALING_ICE_SERVER_TEMPLATE

#define SIGNALING_ICE_SERVER_TEMPLATE
Value:
"\n" \
"\t\t{\n" \
"\t\t\t\"Password\": \"%s\",\n" \
"\t\t\t\"Ttl\": %" PRIu64 ",\n" \
"\t\t\t\"Uris\": [%s],\n" \
"\t\t\t\"Username\": \"%s\"\n" \
"\t\t},"

◆ SIGNALING_JOIN_STORAGE_SESSION_MASTER_PARAM_JSON_TEMPLATE

#define SIGNALING_JOIN_STORAGE_SESSION_MASTER_PARAM_JSON_TEMPLATE   "{\n\t\"channelArn\": \"%s\"\n}"

◆ SIGNALING_JOIN_STORAGE_SESSION_VIEWER_PARAM_JSON_TEMPLATE

#define SIGNALING_JOIN_STORAGE_SESSION_VIEWER_PARAM_JSON_TEMPLATE
Value:
"{\n\t\"channelArn\": \"%s\"," \
"\n\t\"clientId\": \"%s\"\n}"

◆ SIGNALING_MESSAGE_UNKNOWN

#define SIGNALING_MESSAGE_UNKNOWN   "UNKNOWN"

◆ SIGNALING_RECONNECT_ICE_SERVER

#define SIGNALING_RECONNECT_ICE_SERVER   "RECONNECT_ICE_SERVER"

◆ SIGNALING_ROLE_PARAM_NAME

#define SIGNALING_ROLE_PARAM_NAME   "X-Amz-Role"

◆ SIGNALING_SDP_TYPE_ANSWER

#define SIGNALING_SDP_TYPE_ANSWER   "SDP_ANSWER"

◆ SIGNALING_SDP_TYPE_OFFER

#define SIGNALING_SDP_TYPE_OFFER   "SDP_OFFER"

◆ SIGNALING_SEND_MESSAGE_TEMPLATE

#define SIGNALING_SEND_MESSAGE_TEMPLATE
Value:
"{\n" \
"\t\"action\": \"%s\",\n" \
"\t\"RecipientClientId\": \"%.*s\",\n" \
"\t\"MessagePayload\": \"%s\"%s\n" \
"}"

◆ SIGNALING_SEND_MESSAGE_TEMPLATE_WITH_CORRELATION_ID

#define SIGNALING_SEND_MESSAGE_TEMPLATE_WITH_CORRELATION_ID
Value:
"{\n" \
"\t\"action\": \"%s\",\n" \
"\t\"RecipientClientId\": \"%.*s\",\n" \
"\t\"MessagePayload\": \"%s\",\n" \
"\t\"CorrelationId\": \"%.*s\"%s\n" \
"}"

◆ SIGNALING_SERVICE_API_CALL_COMPLETION_TIMEOUT

#define SIGNALING_SERVICE_API_CALL_COMPLETION_TIMEOUT   (5 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ SIGNALING_SERVICE_API_CALL_CONNECTION_TIMEOUT

#define SIGNALING_SERVICE_API_CALL_CONNECTION_TIMEOUT   (2 * HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ SIGNALING_SERVICE_API_CALL_TIMEOUT_IN_SECONDS

#define SIGNALING_SERVICE_API_CALL_TIMEOUT_IN_SECONDS    ((SIGNALING_SERVICE_API_CALL_CONNECTION_TIMEOUT + SIGNALING_SERVICE_API_CALL_COMPLETION_TIMEOUT) / HUNDREDS_OF_NANOS_IN_A_SECOND)

◆ SIGNALING_SERVICE_TCP_KEEPALIVE_IN_SECONDS

#define SIGNALING_SERVICE_TCP_KEEPALIVE_IN_SECONDS   3

◆ SIGNALING_SERVICE_TCP_KEEPALIVE_PROBE_COUNT

#define SIGNALING_SERVICE_TCP_KEEPALIVE_PROBE_COUNT   3

◆ SIGNALING_SERVICE_TCP_KEEPALIVE_PROBE_INTERVAL_IN_SECONDS

#define SIGNALING_SERVICE_TCP_KEEPALIVE_PROBE_INTERVAL_IN_SECONDS   1

◆ SIGNALING_SERVICE_WSS_HANGUP_IN_SECONDS

#define SIGNALING_SERVICE_WSS_HANGUP_IN_SECONDS   7200

◆ SIGNALING_SERVICE_WSS_PING_PONG_INTERVAL_IN_SECONDS

#define SIGNALING_SERVICE_WSS_PING_PONG_INTERVAL_IN_SECONDS   10

◆ SIGNALING_STATUS_RESPONSE

#define SIGNALING_STATUS_RESPONSE   "STATUS_RESPONSE"

◆ SIGNALING_UPDATE_STORAGE_CONFIG_PARAM_JSON_TEMPLATE

#define SIGNALING_UPDATE_STORAGE_CONFIG_PARAM_JSON_TEMPLATE
Value:
"{\n\t\"StreamARN\": \"%s\"," \
"\n\t\"ChannelARN\": \"%s\"," \
"\n\t\"StorageStatus\": \"%s\"" \
"\n}"

◆ TAG_PARAM_JSON_OBJ_TEMPLATE

#define TAG_PARAM_JSON_OBJ_TEMPLATE   "\n\t\t{\"Key\": \"%s\", \"Value\": \"%s\"},"

◆ TAGS_PARAM_JSON_TEMPLATE

#define TAGS_PARAM_JSON_TEMPLATE   ",\n\t\"Tags\": [%s\n\t]"

◆ UPDATE_MEDIA_STORAGE_CONF_API_POSTFIX

#define UPDATE_MEDIA_STORAGE_CONF_API_POSTFIX   "/updateMediaStorageConfiguration"

◆ WSS_SIGNALING_PROTOCOL_INDEX

#define WSS_SIGNALING_PROTOCOL_INDEX   1

Index of the signaling protocol handling WSS IMPORTANT!!! This should match the correct index in the signaling client protocol array

Typedef Documentation

◆ LwsCallInfo

typedef struct __LwsCallInfo LwsCallInfo

◆ PSignalingMessageWrapper

Function Documentation

◆ configureLwsLogging()

STATUS configureLwsLogging ( UINT32 kvsLogLevel)
Here is the caller graph for this function:

◆ connectSignalingChannelLws()

STATUS connectSignalingChannelLws ( PSignalingClient pSignalingClient,
UINT64 time )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createChannelLws()

STATUS createChannelLws ( PSignalingClient pSignalingClient,
UINT64 time )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ createLwsCallInfo()

STATUS createLwsCallInfo ( PSignalingClient pSignalingClient,
PRequestInfo pRequestInfo,
UINT32 protocolIndex,
PLwsCallInfo * ppLwsCallInfo )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ deleteChannelLws()

STATUS deleteChannelLws ( PSignalingClient pSignalingClient,
UINT64 time )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ describeChannelLws()

STATUS describeChannelLws ( PSignalingClient pSignalingClient,
UINT64 time )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ describeMediaStorageConfLws()

STATUS describeMediaStorageConfLws ( PSignalingClient pSignalingClient,
UINT64 time )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ freeLwsCallInfo()

STATUS freeLwsCallInfo ( PLwsCallInfo * ppLwsCallInfo)
Here is the caller graph for this function:

◆ getChannelEndpointLws()

STATUS getChannelEndpointLws ( PSignalingClient pSignalingClient,
UINT64 time )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getIceConfigLws()

STATUS getIceConfigLws ( PSignalingClient pSignalingClient,
UINT64 time )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMessageTypeFromString()

STATUS getMessageTypeFromString ( PCHAR typeStr,
UINT32 typeLen,
SIGNALING_MESSAGE_TYPE * pMessageType )
Here is the caller graph for this function:

◆ getMessageTypeInString()

PCHAR getMessageTypeInString ( SIGNALING_MESSAGE_TYPE messageType)
Here is the caller graph for this function:

◆ getWssUpgradeFailureResult()

SERVICE_CALL_RESULT getWssUpgradeFailureResult ( PSignalingClient pSignalingClient,
PVOID wsi )

Maps a failed WSS upgrade to a service call result. lws keeps the response headers attached until after the connection error callback, so a 401/403 can be checked against its Date header: when the upgrade was signed with a stale clock skew correction, the measured one is recorded and the connect is retried in place.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ isCallResultSignatureExpired()

BOOL isCallResultSignatureExpired ( PCallInfo pCallInfo)
Here is the caller graph for this function:

◆ isCallResultSignatureNotYetCurrent()

BOOL isCallResultSignatureNotYetCurrent ( PCallInfo pCallInfo)
Here is the caller graph for this function:

◆ joinStorageSessionLws()

STATUS joinStorageSessionLws ( PSignalingClient pSignalingClient,
UINT64 time )

< TBD. Accroding to the design document, the prefix of url will be webrtc://

Here is the call graph for this function:
Here is the caller graph for this function:

◆ lwsCompleteSync()

STATUS lwsCompleteSync ( PLwsCallInfo pCallInfo)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ lwsHttpCallbackRoutine()

INT32 lwsHttpCallbackRoutine ( PVOID wsi,
INT32 reason,
PVOID user,
PVOID pDataIn,
size_t dataSize )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ lwsListenerHandler()

PVOID lwsListenerHandler ( PVOID args)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ lwsSignalHandler()

VOID lwsSignalHandler ( INT32 signal)

◆ lwsWssCallbackRoutine()

INT32 lwsWssCallbackRoutine ( PVOID wsi,
INT32 reason,
PVOID user,
PVOID pDataIn,
size_t dataSize )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseIceConfigResponse()

STATUS parseIceConfigResponse ( PCHAR pResponseStr,
UINT32 responseLen,
UINT8 maxIceConfigs,
PIceConfigInfo pIceConfigs,
PUINT32 pIceConfigCount )

Parses ICE configuration from a JSON response string. If there are more ICE configurations in the string than maxIceConfigs, we will only parse up until maxIceConfigs.

Parameters
[in]pResponseStrJSON string containing ICE server configuration.
[in]responseLenLength of the JSON string (excluding null-terminator).
[in]maxIceConfigsMaximum number of ICE configurations the array can hold.
[out]pIceConfigsPointer to array of IceConfigInfo structures to be populated.
[out]pIceConfigCountPointer to receive the number of ICE configurations parsed.
Returns
STATUS code of the execution:
  • STATUS_SUCCESS: Successfully parsed ICE configuration.
  • STATUS_NULL_ARG: Invalid NULL argument provided.
  • STATUS_INVALID_API_CALL_RETURN_JSON: Malformed JSON or missing required fields.
  • STATUS_SIGNALING_MAX_ICE_URI_COUNT: Too many URIs in configuration (more than MAX_ICE_CONFIG_URI_COUNT).
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parseSignalingMessage()

STATUS parseSignalingMessage ( PCHAR pMessage,
UINT32 messageLen,
PReceivedSignalingMessage pReceivedSignalingMessage )

Parses the signaling message from a JSON response string. The payload is base64-decoded in the output. See Asynchronous message reception.

Parameters
[in]pMessageJSON of the signaling message.
[in]messageLenLength of the JSON string (excluding null-terminator).
[out]pReceivedSignalingMessagePointer to receive the parsed signaling message.
Returns
STATUS code of the execution:
  • STATUS_SUCCESS: Successfully parsed ICE configuration.
  • STATUS_NULL_ARG: Invalid NULL argument provided.
  • STATUS_SIGNALING_INVALID_MESSAGE_TYPE: If the required field 'messageType' is missing for non error response messages.
  • STATUS_INVALID_API_CALL_RETURN_JSON: Malformed JSON or missing other required fields.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ receiveLwsMessage()

STATUS receiveLwsMessage ( PSignalingClient pSignalingClient,
PCHAR pMessage,
UINT32 messageLen )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ receiveLwsMessageWrapper()

PVOID receiveLwsMessageWrapper ( PVOID args)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ reconnectHandler()

PVOID reconnectHandler ( PVOID args)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ recordClockSkewCorrection()

INT64 recordClockSkewCorrection ( PSignalingClient pSignalingClient,
UINT64 serverTime,
UINT64 nowTime )

Records the clock skew measured from a response Date header as the correction for all later requests. The measurement is always against the raw device time, so a device clock that gets fixed resets it to 0.

Returns how far off the signing time of the last signed request was. Beyond MIN_CLOCK_SKEW_TIME_TO_CORRECT, re-signing that request with the new correction can succeed.

Here is the caller graph for this function:

◆ sendLwsMessage()

STATUS sendLwsMessage ( PSignalingClient pSignalingClient,
SIGNALING_MESSAGE_TYPE messageType,
PCHAR peerClientId,
PCHAR pMessage,
UINT32 messageLen,
PCHAR pCorrelationId,
UINT32 correlationIdLen )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ startReconnectHandler()

STATUS startReconnectHandler ( PSignalingClient pSignalingClient)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ terminateConnectionWithStatus()

STATUS terminateConnectionWithStatus ( PSignalingClient pSignalingClient,
SERVICE_CALL_RESULT callResult )
Here is the call graph for this function:
Here is the caller graph for this function:

◆ terminateLwsListenerLoop()

STATUS terminateLwsListenerLoop ( PSignalingClient pSignalingClient)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ wakeLwsServiceEventLoop()

STATUS wakeLwsServiceEventLoop ( PSignalingClient pSignalingClient,
UINT32 protocolIndex )
Here is the caller graph for this function:

◆ writeLwsData()

STATUS writeLwsData ( PSignalingClient pSignalingClient,
BOOL awaitForResponse )
Here is the call graph for this function:
Here is the caller graph for this function: