@@ -25,6 +25,22 @@ void oai_send_audio_task(void *user_data) {
25
25
}
26
26
#endif
27
27
28
+ static void oai_ondatachannel_onmessage_task (char *msg, size_t len,
29
+ void *userdata, uint16_t sid) {
30
+ #ifdef LOG_DATACHANNEL_MESSAGES
31
+ ESP_LOGI (LOG_TAG, " DataChannel Message: %s" , msg);
32
+ #endif
33
+ }
34
+
35
+ static void oai_ondatachannel_onopen_task (void *userdata) {
36
+ if (peer_connection_create_datachannel (peer_connection, DATA_CHANNEL_RELIABLE,
37
+ 0 , 0 , (char *)" " , (char *)" " ) != -1 ) {
38
+ ESP_LOGI (LOG_TAG, " DataChannel created" );
39
+ } else {
40
+ ESP_LOGE (LOG_TAG, " Failed to create DataChannel" );
41
+ }
42
+ }
43
+
28
44
static void oai_onconnectionstatechange_task (PeerConnectionState state,
29
45
void *user_data) {
30
46
ESP_LOGI (LOG_TAG, " PeerConnectionState: %s" ,
@@ -56,7 +72,7 @@ void oai_webrtc() {
56
72
.ice_servers = {},
57
73
.audio_codec = CODEC_OPUS,
58
74
.video_codec = CODEC_NONE,
59
- .datachannel = DATA_CHANNEL_NONE ,
75
+ .datachannel = DATA_CHANNEL_STRING ,
60
76
.onaudiotrack = [](uint8_t *data, size_t size, void *userdata) -> void {
61
77
#ifndef LINUX_BUILD
62
78
oai_audio_decode (data, size);
@@ -78,6 +94,10 @@ void oai_webrtc() {
78
94
peer_connection_oniceconnectionstatechange (peer_connection,
79
95
oai_onconnectionstatechange_task);
80
96
peer_connection_onicecandidate (peer_connection, oai_on_icecandidate_task);
97
+ peer_connection_ondatachannel (peer_connection,
98
+ oai_ondatachannel_onmessage_task,
99
+ oai_ondatachannel_onopen_task, NULL );
100
+
81
101
peer_connection_create_offer (peer_connection);
82
102
83
103
while (1 ) {
0 commit comments