Merge pull request #4093 from poislagarde/fix/genesys-pong-parameters
This commit is contained in:
7
changelog/4093.fixed.md
Normal file
7
changelog/4093.fixed.md
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
- Fixed Genesys AudioHook serializer to always include the `parameters` field in
|
||||||
|
protocol messages. The AudioHook protocol requires every message to carry a
|
||||||
|
`parameters` object (even if empty), but `_create_message` omitted it when no
|
||||||
|
parameters were provided. This caused clients that validate message structure
|
||||||
|
(including the Genesys reference implementation) to reject `pong` and
|
||||||
|
parameter-less `closed` responses, breaking server sequence tracking and
|
||||||
|
preventing `outputVariables` from reaching the Architect flow.
|
||||||
@@ -336,8 +336,7 @@ class GenesysAudioHookSerializer(FrameSerializer):
|
|||||||
if include_position:
|
if include_position:
|
||||||
msg["position"] = self._format_position(self._position)
|
msg["position"] = self._format_position(self._position)
|
||||||
|
|
||||||
if parameters:
|
msg["parameters"] = parameters if parameters is not None else {}
|
||||||
msg["parameters"] = parameters
|
|
||||||
|
|
||||||
return msg
|
return msg
|
||||||
|
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ class TestGenesysAudioHookSerializer:
|
|||||||
|
|
||||||
assert msg["type"] == "pong"
|
assert msg["type"] == "pong"
|
||||||
assert msg["id"] == serializer.session_id
|
assert msg["id"] == serializer.session_id
|
||||||
|
assert msg["parameters"] == {}
|
||||||
|
|
||||||
def test_create_closed_response(self):
|
def test_create_closed_response(self):
|
||||||
"""Test creating a closed response message."""
|
"""Test creating a closed response message."""
|
||||||
@@ -86,7 +87,7 @@ class TestGenesysAudioHookSerializer:
|
|||||||
|
|
||||||
assert msg["type"] == "closed"
|
assert msg["type"] == "closed"
|
||||||
assert serializer.is_open is False
|
assert serializer.is_open is False
|
||||||
assert "parameters" not in msg # No parameters when no output_variables
|
assert msg["parameters"] == {} # Empty parameters when no output_variables
|
||||||
|
|
||||||
def test_create_closed_response_with_output_variables(self):
|
def test_create_closed_response_with_output_variables(self):
|
||||||
"""Test creating a closed response with custom output variables."""
|
"""Test creating a closed response with custom output variables."""
|
||||||
|
|||||||
Reference in New Issue
Block a user