Skip to content

[BUG] Using actual boolean instead of json string in boolean parameter causes bxml error #248

@stephenreddek

Description

@stephenreddek

Checklist

  • Have you provided a description of the bug?
  • Have you provided your Environment information?
  • Have you provided a sample code snippet?
  • Have you provided a stack trace?
  • Have you outlined the expected behavior?

Description

When receiving an initiate and responding with BXML to start a mult_channel recording, following the types results in a BXML failure on the bandwidth side. The error sends a call status event with cause invalid-bxml. The issue is setting mutli_channel to True instead of "true".

Environment Information

  • OS Version: Mac OS 15.4
  • SDK Version: 18.1.3
  • Environment: 3.11.10

Sample Code Snippet

       response = Response()

        response.add_verb(
            StartRecording(
                multi_channel=True, # this fails. To get this to work, I have to set it to `"true"`
                file_format="mp3",
            )
        )

        response.add_verb(Ring(duration=5))

        status_webhook_url = "ws://our-url"

        start_stream = StartStream(
            destination=f"wss://{ws_base_url}/ws/bandwidth/",
            stream_event_url=status_webhook_url,
            mode="bidirectional",
        )
        start_stream.add_verb(StreamParam(name="hotel_uuid", value=str(hotel.uuid)))
        start_stream.add_verb(StreamParam(name="canary_call_uuid", value=str(call.uuid)))

        response.add_verb(start_stream)
        response.add_verb(
            Pause(duration=86400) # hack to keep the call alive
        )

        logger.info("bandwidth_initiate_call.response", response=response.to_bxml())

        return HttpResponse(content=response.to_bxml(), status=200, content_type="application/xml")

Stack Trace

None

Expected Behavior

I would expect to be able to pass a native boolean instead of a string version to multi_channel

Suggested Fix

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions