sendspin-server-cpp: dialing ws://127.0.0.1:19958/sendspin for playback sendspin-server-cpp: "sendspin-cpp-client" at 127.0.0.1:19958 connected listener: client sendspin-cpp-client disconnected: server stopped { "status": "ok", "implementation": "sendspin-server-cpp", "role": "server", "server_name": "sendspin-server-cpp server", "scenario_id": "server-initiated-protocol-baseline-v1", "initiator_role": "server", "preferred_codec": "pcm", "server_id": "u9hev1XgGvexIv-ugxx1aTrMRYWwHkjMTlerv90KHxU", "discovery_method": "registry", "peer_hello": { "type": "client/hello", "payload": { "name": "sendspin-cpp-client", "device_info": { "product_name": "sendspin-cpp Conformance Client", "manufacturer": "Sendspin Conformance", "software_version": "0.2.0", "mac_address": "9e:1f:65:cd:d6:b8" }, "supported_pair_methods": { "pairing_psk": {} }, "unpaired_access": { "enabled": true }, "supported_roles": [ "player@v1" ], "player@v1_support": { "supported_formats": [ { "codec": "pcm", "channels": 1, "sample_rate": 8000, "bit_depth": 16 } ], "buffer_capacity": 621312 } } }, "activation": { "type": "server/activate", "payload": { "activities": [ "playback" ], "active_roles": [ "player@v1" ] } }, "group_updates": [ { "type": "group/update", "payload": { "playback_state": "stopped", "group_id": "1", "group_name": "sendspin-server-cpp server" } }, { "type": "group/update", "payload": { "playback_state": "playing", "group_id": "1", "group_name": "sendspin-server-cpp server" } }, { "type": "group/update", "payload": { "playback_state": "stopped", "group_id": "1", "group_name": "sendspin-server-cpp server" } } ], "availability_trace": [ { "type": "client/state", "available": true }, { "type": "stream/start", "phase": "sending", "roles": [ "player" ] }, { "type": "stream/start", "phase": "sent", "roles": [ "player" ] } ], "time_exchange": [ { "type": "client/time", "payload": { "client_transmitted": 727650928 } }, { "type": "server/time", "payload": { "client_transmitted": 727650928, "server_received": 727651035, "server_transmitted": 727651101 } }, { "type": "client/time", "payload": { "client_transmitted": 727651220 } }, { "type": "server/time", "payload": { "client_transmitted": 727651220, "server_received": 727651252, "server_transmitted": 727651287 } }, { "type": "client/time", "payload": { "client_transmitted": 727651363 } }, { "type": "server/time", "payload": { "client_transmitted": 727651363, "server_received": 727651390, "server_transmitted": 727651503 } }, { "type": "client/time", "payload": { "client_transmitted": 727651632 } }, { "type": "server/time", "payload": { "client_transmitted": 727651632, "server_received": 727651686, "server_transmitted": 727651721 } }, { "type": "client/time", "payload": { "client_transmitted": 727651826 } }, { "type": "server/time", "payload": { "client_transmitted": 727651826, "server_received": 727651861, "server_transmitted": 727651907 } }, { "type": "client/time", "payload": { "client_transmitted": 727652054 } }, { "type": "server/time", "payload": { "client_transmitted": 727652054, "server_received": 727652085, "server_transmitted": 727652127 } }, { "type": "client/time", "payload": { "client_transmitted": 727652211 } }, { "type": "server/time", "payload": { "client_transmitted": 727652211, "server_received": 727652263, "server_transmitted": 727652300 } }, { "type": "client/time", "payload": { "client_transmitted": 727652393 } }, { "type": "server/time", "payload": { "client_transmitted": 727652393, "server_received": 727652427, "server_transmitted": 727652464 } }, { "type": "other-sent" } ], "client": { "client_id": "fC8iNQUfyvqk_8-4NErY3zY4LpheH_mhvf0J-S-2tgs", "name": "sendspin-cpp-client", "supported_roles": [ "player@v1" ], "active_roles": [ "player@v1" ] }, "stream": { "codec": "pcm", "sample_rate": 8000, "channels": 1, "bit_depth": 16 }, "audio": { "fixture": "/Users/runner/work/conformance/conformance/repos/sendspin-cli/tests/fixtures/almost_silent.flac", "source_flac_sha256": "8fdda8244e318c63cd8b699fe461cd7cdddbb729327a0ba00d1bfdbe2192fe17", "source_pcm_sha256": "9d447b5b270bc99b45bb9a616937e436c941ca56c477f9cbe16a93275a6b059e", "clip_seconds": 5, "sample_rate": 8000, "channels": 1, "bit_depth": 16, "frame_count": 40000, "duration_seconds": 5 }, "protocol": { "spec_revision": "8c9577ea8719ad082d051ec13cc73ef15ed68948", "assertions": { "CORE-001": { "status": "passed", "detail": "the trace shows the seven handshake messages in order, the cleartext ones in text frames and the encrypted ones in binary frames", "events": [ { "event": "handshake_message", "direction": "inbound", "message_type": "client/init", "frame": "text" }, { "event": "handshake_message", "direction": "outbound", "message_type": "server/init", "frame": "text" }, { "event": "handshake_message", "direction": "outbound", "message_type": "noise/handshake", "frame": "text" }, { "event": "handshake_message", "direction": "inbound", "message_type": "noise/handshake", "frame": "text" }, { "event": "handshake_message", "direction": "outbound", "message_type": "server/hello", "frame": "binary" }, { "event": "handshake_message", "direction": "inbound", "message_type": "client/hello", "frame": "binary" }, { "event": "handshake_message", "direction": "outbound", "message_type": "server/activate", "frame": "binary" } ] }, "CORE-002": { "status": "passed", "detail": "only handshake messages preceded the first server/activate", "events": [ { "event": "message_before_activation", "direction": "inbound", "message_type": "client/init", "frame": "text" }, { "event": "message_before_activation", "direction": "outbound", "message_type": "server/init", "frame": "text" }, { "event": "message_before_activation", "direction": "outbound", "message_type": "noise/handshake", "frame": "text" }, { "event": "message_before_activation", "direction": "inbound", "message_type": "noise/handshake", "frame": "text" }, { "event": "message_before_activation", "direction": "outbound", "message_type": "server/hello", "frame": "binary" }, { "event": "message_before_activation", "direction": "inbound", "message_type": "client/hello", "frame": "binary" }, { "event": "message_before_activation", "direction": "outbound", "message_type": "server/activate", "frame": "binary" } ] }, "CORE-003": { "status": "passed", "detail": "every active role was advertised, with the support object its role requires", "events": [ { "event": "server_activate_checked_against_client_hello", "active_roles": [ "player@v1" ], "supported_roles": [ "player@v1" ], "support_objects": [ "player@v1_support" ] } ] }, "CORE-004": { "status": "passed", "detail": "the initial client/state preceded the first role binary data", "events": [ { "event": "server_activate", "direction": "outbound", "message_type": "server/activate", "frame": "binary" }, { "event": "initial_client_state", "direction": "inbound", "message_type": "client/state", "frame": "binary" }, { "event": "first_role_binary_data", "direction": "outbound", "message_type": "binary:4", "frame": "binary" } ] }, "PLAYER-001": { "status": "passed", "detail": "selected an advertised format and sent 50 audio chunks in timestamp order", "events": [ { "event": "stream_start_observed", "negotiated_format": { "codec": "pcm", "sample_rate": 8000, "channels": 1, "bit_depth": 16 }, "advertised_formats": [ { "codec": "pcm", "channels": 1, "sample_rate": 8000, "bit_depth": 16 } ] }, { "event": "audio_chunks_observed", "chunk_count": 50, "first_timestamp_us": 728162754, "last_timestamp_us": 733062754 } ] } } } }