Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Signaling Implementation #3

Merged
merged 26 commits into from
Jul 4, 2024
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
197e279
signaling implementation
ActoryOu Mar 8, 2024
9afad06
submodule coreJSON
ActoryOu Mar 8, 2024
29c0bc6
Add CakeLists.txt for external import
ActoryOu Mar 8, 2024
c88cadd
Fix compile issues
ActoryOu Mar 8, 2024
eb4983d
Add README doc
ActoryOu Mar 12, 2024
f644cb4
Update comments & structures
ActoryOu Mar 12, 2024
57dee68
Add error handling
ActoryOu Mar 12, 2024
97b67b9
Add newline in signalingFilePaths.cmake
ActoryOu Mar 12, 2024
601b889
update cmakelists.txt
ActoryOu Mar 14, 2024
ef4fe1e
Fix Signaling_parseDescribeMediaStorageConfigResponse
ActoryOu Mar 18, 2024
d62ce96
Formatting
ActoryOu May 15, 2024
ab88b49
Add newline for if/else condition.
ActoryOu May 17, 2024
64eb870
Code review suggestions
aggarg May 28, 2024
bb354e7
Add URL back into APIs.
ActoryOu Jun 4, 2024
1ebe669
Add full path in cmake file.
ActoryOu Jun 4, 2024
bd3cbb8
Formatting
ActoryOu Jun 4, 2024
66f32d5
Add websocket API into README
ActoryOu Jun 4, 2024
15d0621
Minor formatting suggestions
aggarg Jun 5, 2024
bc079ea
Readme updates
aggarg Jun 6, 2024
8678439
Address code review feedback
aggarg Jun 6, 2024
2e54f5f
Fix spelling
ActoryOu Jun 7, 2024
5845ea3
Update comments
ActoryOu Jun 13, 2024
27eee82
Remove Ice server list in both wss send/recv messages.
ActoryOu Jun 21, 2024
a03f86c
Try fix create signaling channel in webRTC c sdk.
ActoryOu Jun 21, 2024
9623f36
Add intend for create signaling channel
ActoryOu Jun 21, 2024
8bd35f2
Revert indent change in create signaling channel
ActoryOu Jun 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[submodule "source/dependency/coreJSON"]
path = source/dependency/coreJSON
url = https://github.com/FreeRTOS/coreJSON
update = none
sirknightj marked this conversation as resolved.
Show resolved Hide resolved
32 changes: 32 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
cmake_minimum_required(VERSION 3.6.3)
project(kvssignaling C)

find_library(COREJSON_LIBRARY NAMES corejson ${coreJSON} REQUIRED)

include(signalingFilePaths.cmake)

if(BUILD_SHARED_LIBS)
add_library(kvssignaling SHARED ${SIGNALING_SOURCES})
else()
add_library(kvssignaling STATIC ${SIGNALING_SOURCES})
endif()

target_include_directories(kvssignaling PUBLIC
${SIGNALING_INCLUDE_PUBLIC_DIRS}
${COREJSON_INCLUDE_DIRS})

set_target_properties(kvssignaling PROPERTIES
INSTALL_RPATH "${CMAKE_INSTALL_LIBDIR}"
INSTALL_RPATH_USE_LINK_PATH TRUE)
target_link_libraries(kvssignaling PRIVATE ${COREJSON_LIBRARY})

# install header files
install(
FILES ${SIGNALING_INCLUDE_PUBLIC_FILES}
DESTINATION include/kvssignaling)

install(
TARGETS kvssignaling
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}"
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
45 changes: 32 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,36 @@
## My Project

TODO: Fill this README out!

Be sure to:

* Change the title in this README
* Edit your repository description on GitHub

## Security

See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more information.
## amazon-kinesis-video-streams-signaling

The goal of the Signaling library is to enable control plane communication
aggarg marked this conversation as resolved.
Show resolved Hide resolved
with the Amazon Kinesis Video Streams (KVS) service. Refer to
[AWS KVS API Reference](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Reference.html)
and [WebRTC Websocket APIs](https://docs.aws.amazon.com/kinesisvideostreams-webrtc-dg/latest/devguide/kvswebrtc-websocket-apis.html)
for more details.

## What is Signaling?

The Amazon Kinesis Video Signaling Service facilitates peer-to-peer
communication by providing signaling channels that enable applications to
discover, establish, control, and terminate connections through the exchange of
signaling messages. This library provides APIs to construct requests to send to
the Signaling Service and to parse responses from the Signaling Service.

- Note that this library has a dependency on [coreJSON](https://github.com/FreeRTOS/coreJSON).

## Using the library

1. Use the `Signaling_Construct*` APIs to construct requests to send to the
Signaling Service.
- Ensure authenticate to sign the constructed requests using the Signature
ActoryOu marked this conversation as resolved.
Show resolved Hide resolved
Version 4 (SigV4) [authentication flow](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)
before sending them.
3. Use the `Signaling_Parse*` APIs to parse the responses from the Signaling
aggarg marked this conversation as resolved.
Show resolved Hide resolved
Service.
4. Use `Signaling_ConstructWssMessage` and `Signaling_ParseWssRecvMessage` APIs
to communicate with the WSS endpoint.
- Ensure to authenticate and sign the constructed messages using the
Signature Version 4 (SigV4) [authentication flow](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html)
before sending them.
sirknightj marked this conversation as resolved.
Show resolved Hide resolved

## License

This project is licensed under the Apache-2.0 License.

19 changes: 19 additions & 0 deletions signalingFilePaths.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# This file is to add source files and include directories
# into variables so that it can be reused from different repositories
# in their Cmake based build system by including this file.
#
# Files specific to the repository such as test runner, platform tests
# are not added to the variables.

# Signaling library source files.
set( SIGNALING_SOURCES
"${CMAKE_CURRENT_LIST_DIR}/source/signaling_api.c" )

# Signaling library Public Include directories.
set( SIGNALING_INCLUDE_PUBLIC_DIRS
"${CMAKE_CURRENT_LIST_DIR}/source/include" )

# Signaling library public include header files.
set( SIGNALING_INCLUDE_PUBLIC_FILES
"${CMAKE_CURRENT_LIST_DIR}/source/include/signaling_api.h"
"${CMAKE_CURRENT_LIST_DIR}/source/include/signaling_data_types.h" )
1 change: 1 addition & 0 deletions source/dependency/coreJSON
Submodule coreJSON added at dc1ab9
322 changes: 322 additions & 0 deletions source/include/signaling_api.h

Large diffs are not rendered by default.

Loading