
Go to the source code of this file.
Classes | |
| struct | __LwsCallInfo |
| struct | SignalingMessageWrapper |
Typedefs | |
| typedef struct __LwsCallInfo | LwsCallInfo |
| typedef struct SignalingMessageWrapper * | PSignalingMessageWrapper |
| #define AWS_SIG_V4_HEADER_HOST (PCHAR) "host" |
| #define BLOCK_ON_CORRELATION_ID FALSE |
| #define CHECK_SIGNALING_CREDENTIALS_EXPIRATION | ( | p | ) |
| #define CREATE_CHANNEL_PARAM_JSON_TEMPLATE |
| #define CREATE_SIGNALING_CHANNEL_API_POSTFIX "/createSignalingChannel" |
| #define DELETE_CHANNEL_PARAM_JSON_TEMPLATE |
| #define DELETE_SIGNALING_CHANNEL_API_POSTFIX "/deleteSignalingChannel" |
| #define DESCRIBE_CHANNEL_PARAM_JSON_TEMPLATE "{\n\t\"ChannelName\": \"%s\"\n}" |
| #define DESCRIBE_MEDIA_STORAGE_CONF_API_POSTFIX "/describeMediaStorageConfiguration" |
| #define DESCRIBE_MEDIA_STORAGE_CONF_PARAM_JSON_TEMPLATE "{\n\t\"ChannelARN\": \"%s\"\n}" |
| #define DESCRIBE_SIGNALING_CHANNEL_API_POSTFIX "/describeSignalingChannel" |
| #define GET_CHANNEL_ENDPOINT_PARAM_JSON_TEMPLATE |
| #define GET_ICE_CONFIG_API_POSTFIX "/v1/get-ice-server-config" |
| #define GET_ICE_CONFIG_PARAM_JSON_TEMPLATE |
| #define GET_SIGNALING_CHANNEL_ENDPOINT_API_POSTFIX "/getSignalingChannelEndpoint" |
| #define ICE_SERVER_INFO_TEMPLATE_BLOAT_SIZE 128 |
| #define ICE_SERVER_URI_BLOAT_SIZE 10 |
| #define JOIN_STORAGE_SESSION_API_POSTFIX "/joinStorageSession" |
| #define LWS_ALIGN_BYTES 16 |
| #define LWS_MESSAGE_BUFFER_SIZE (SIZEOF(CHAR) * (MAX_SIGNALING_MESSAGE_LEN + LWS_ALIGN_BYTES)) |
| #define LWS_SCRATCH_BUFFER_SIZE (MAX_JSON_PARAMETER_STRING_LEN + LWS_ALIGN_BYTES) |
| #define LWS_SERVICE_LOCK_RETRY_WAIT (1 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND) |
| #define LWS_SERVICE_LOOP_ITERATION_WAIT (50 * HUNDREDS_OF_NANOS_IN_A_MILLISECOND) |
| #define MAX_CLOCK_SKEW_RETRIES_PER_CALL 1 |
| #define MAX_DATE_HEADER_BUFFER_LENGTH 64 |
| #define MAX_ENCODED_ICE_SERVER_INFOS_STR_LEN (MAX_ICE_SERVER_INFOS_STR_LEN + ICE_SERVER_INFO_TEMPLATE_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_ICE_SERVER_URI_STR_LEN (MAX_ICE_CONFIG_URI_COUNT * (MAX_ICE_CONFIG_URI_LEN + ICE_SERVER_URI_BLOAT_SIZE)) |
| #define MAX_SIGNALING_MESSAGE_TYPE_LEN ARRAY_SIZE(SIGNALING_RECONNECT_ICE_SERVER) |
| #define MAX_SIGNALING_STATUS_MESSAGE_LEN 16 |
| #define MIN_CLOCK_SKEW_TIME_TO_CORRECT (5 * HUNDREDS_OF_NANOS_IN_A_MINUTE) |
| #define PROTOCOL_INDEX_HTTPS 0 |
| #define PROTOCOL_INDEX_WSS 1 |
| #define SIGNALING_CHANNEL_ARN_PARAM_NAME "X-Amz-ChannelARN" |
| #define SIGNALING_CHANNEL_NAME_PARAM_NAME "X-Amz-ChannelName" |
| #define SIGNALING_CHANNEL_PROTOCOL "\"WSS\", \"HTTPS\"" |
| #define SIGNALING_CHANNEL_PROTOCOL_W_MEDIA_STORAGE "\"WSS\", \"HTTPS\", \"WEBRTC\"" |
| #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_GO_AWAY "GO_AWAY" |
| #define SIGNALING_ICE_CANDIDATE "ICE_CANDIDATE" |
| #define SIGNALING_ICE_SERVER_LIST_TEMPLATE_END "\n\t]" |
| #define SIGNALING_ICE_SERVER_LIST_TEMPLATE_START |
| #define SIGNALING_ICE_SERVER_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_MESSAGE_UNKNOWN "UNKNOWN" |
| #define SIGNALING_RECONNECT_ICE_SERVER "RECONNECT_ICE_SERVER" |
| #define SIGNALING_ROLE_PARAM_NAME "X-Amz-Role" |
| #define SIGNALING_SDP_TYPE_ANSWER "SDP_ANSWER" |
| #define SIGNALING_SDP_TYPE_OFFER "SDP_OFFER" |
| #define SIGNALING_SEND_MESSAGE_TEMPLATE |
| #define SIGNALING_SEND_MESSAGE_TEMPLATE_WITH_CORRELATION_ID |
| #define SIGNALING_SERVICE_API_CALL_COMPLETION_TIMEOUT (5 * HUNDREDS_OF_NANOS_IN_A_SECOND) |
| #define SIGNALING_SERVICE_API_CALL_CONNECTION_TIMEOUT (2 * 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_HANGUP_IN_SECONDS 7200 |
| #define SIGNALING_SERVICE_WSS_PING_PONG_INTERVAL_IN_SECONDS 10 |
| #define SIGNALING_STATUS_RESPONSE "STATUS_RESPONSE" |
| #define SIGNALING_UPDATE_STORAGE_CONFIG_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 UPDATE_MEDIA_STORAGE_CONF_API_POSTFIX "/updateMediaStorageConfiguration" |
| #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 struct __LwsCallInfo LwsCallInfo |
| typedef struct SignalingMessageWrapper * PSignalingMessageWrapper |
| STATUS configureLwsLogging | ( | UINT32 | kvsLogLevel | ) |

| STATUS connectSignalingChannelLws | ( | PSignalingClient | pSignalingClient, |
| UINT64 | time ) |


| STATUS createChannelLws | ( | PSignalingClient | pSignalingClient, |
| UINT64 | time ) |


| STATUS createLwsCallInfo | ( | PSignalingClient | pSignalingClient, |
| PRequestInfo | pRequestInfo, | ||
| UINT32 | protocolIndex, | ||
| PLwsCallInfo * | ppLwsCallInfo ) |


| STATUS deleteChannelLws | ( | PSignalingClient | pSignalingClient, |
| UINT64 | time ) |


| STATUS describeChannelLws | ( | PSignalingClient | pSignalingClient, |
| UINT64 | time ) |


| STATUS describeMediaStorageConfLws | ( | PSignalingClient | pSignalingClient, |
| UINT64 | time ) |


| STATUS freeLwsCallInfo | ( | PLwsCallInfo * | ppLwsCallInfo | ) |

| STATUS getChannelEndpointLws | ( | PSignalingClient | pSignalingClient, |
| UINT64 | time ) |


| STATUS getIceConfigLws | ( | PSignalingClient | pSignalingClient, |
| UINT64 | time ) |


| STATUS getMessageTypeFromString | ( | PCHAR | typeStr, |
| UINT32 | typeLen, | ||
| SIGNALING_MESSAGE_TYPE * | pMessageType ) |

| PCHAR getMessageTypeInString | ( | SIGNALING_MESSAGE_TYPE | messageType | ) |

| 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.


| BOOL isCallResultSignatureExpired | ( | PCallInfo | pCallInfo | ) |

| BOOL isCallResultSignatureNotYetCurrent | ( | PCallInfo | pCallInfo | ) |

| STATUS joinStorageSessionLws | ( | PSignalingClient | pSignalingClient, |
| UINT64 | time ) |
< TBD. Accroding to the design document, the prefix of url will be webrtc://


| STATUS lwsCompleteSync | ( | PLwsCallInfo | pCallInfo | ) |


| INT32 lwsHttpCallbackRoutine | ( | PVOID | wsi, |
| INT32 | reason, | ||
| PVOID | user, | ||
| PVOID | pDataIn, | ||
| size_t | dataSize ) |


| PVOID lwsListenerHandler | ( | PVOID | args | ) |


| VOID lwsSignalHandler | ( | INT32 | signal | ) |
| INT32 lwsWssCallbackRoutine | ( | PVOID | wsi, |
| INT32 | reason, | ||
| PVOID | user, | ||
| PVOID | pDataIn, | ||
| size_t | dataSize ) |


| 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.
| [in] | pResponseStr | JSON string containing ICE server configuration. |
| [in] | responseLen | Length of the JSON string (excluding null-terminator). |
| [in] | maxIceConfigs | Maximum number of ICE configurations the array can hold. |
| [out] | pIceConfigs | Pointer to array of IceConfigInfo structures to be populated. |
| [out] | pIceConfigCount | Pointer to receive the number of ICE configurations parsed. |


| 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.
| [in] | pMessage | JSON of the signaling message. |
| [in] | messageLen | Length of the JSON string (excluding null-terminator). |
| [out] | pReceivedSignalingMessage | Pointer to receive the parsed signaling message. |


| STATUS receiveLwsMessage | ( | PSignalingClient | pSignalingClient, |
| PCHAR | pMessage, | ||
| UINT32 | messageLen ) |


| PVOID receiveLwsMessageWrapper | ( | PVOID | args | ) |


| PVOID reconnectHandler | ( | PVOID | args | ) |


| 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.

| STATUS sendLwsMessage | ( | PSignalingClient | pSignalingClient, |
| SIGNALING_MESSAGE_TYPE | messageType, | ||
| PCHAR | peerClientId, | ||
| PCHAR | pMessage, | ||
| UINT32 | messageLen, | ||
| PCHAR | pCorrelationId, | ||
| UINT32 | correlationIdLen ) |


| STATUS startReconnectHandler | ( | PSignalingClient | pSignalingClient | ) |


| STATUS terminateConnectionWithStatus | ( | PSignalingClient | pSignalingClient, |
| SERVICE_CALL_RESULT | callResult ) |


| STATUS terminateLwsListenerLoop | ( | PSignalingClient | pSignalingClient | ) |


| STATUS wakeLwsServiceEventLoop | ( | PSignalingClient | pSignalingClient, |
| UINT32 | protocolIndex ) |

| STATUS writeLwsData | ( | PSignalingClient | pSignalingClient, |
| BOOL | awaitForResponse ) |

