RTSP Probe ========== Act as a RTSP client over TCP. Identification and Properties ----------------------------- Probe Type ID: ``rtsp.client`` Properties: .. csv-table:: :header: "Name","Type","Default value","Description" "``strict_mode``","boolean","``False``","When ``True``, disables automatic CSeq management (generation and check on response), and transfer response headers as is, without modifying the case (use this mode for protocol-oriented testing). When ``False``, CSeq is automatically generated if not provided, checked when receiving a response, and reponse header names are converted to lower case to make matching easier." "``version``","string","``RTSP/1.0``","The RSTP version string to use in the request line" "``auto_connect``","boolean","``False``","If set to ``True``, tcp-connect on mapping, otherwise only connect hen sending a message. Has no effect for udp transport." "``maintain_connection``","boolean","``False``","If set to ``True``, does not tcp-disconnect once a response has been received. Has no effect for udp transport." "``host``","string","``localhost``","The IP address or hostname of the RTSP server" "``port``","integer","``554``","The transport port of the RTSP server" "``transport``","string in ``'tcp', 'udp'``","``tcp``","The transport to use to reach the RTSP server. Only ``tcp`` is implemented for now" "``local_ip``","string","``''`` (empty)","The local IP address (or hostname) to use for outgoing packets. Leave it empty for automatic selection by the system. For udp transport, this is also the address the probe listens for a response on" "``local_port``","integer","``0``","The local port for the outgoing packets. Leave it to 0 for automatic port selection by the system. For udp transport, this is also the port the probe listens for a response on" Overview -------- This probe implements a very simple RTSP encoder/decoder over tcp. It encapsulates the :doc:`RTSP codecs `, feeding it only when the whole payload has been received (that's why a probe is required), and is based on `RFC 2326 `_. Optionally, the probe can manage CSeq generation and correlation on response (see the ``strict_mode`` property), enabling both high-level and more procotol-oriented testing. Availability ~~~~~~~~~~~~ All platforms. Dependencies ~~~~~~~~~~~~ None. See Also ~~~~~~~~ For pure protocol testing, you may also consider using :doc:`RTSP codecs ` with an :doc:`UDP probe ` (stateful decoding not required), or with a :doc:`TCP probe `. TTCN-3 Types Equivalence ------------------------ The test system interface port bound to such a probe complies with the ``RtspClientPortType`` port type as specified below: :: type record RtspRequest { charstring method, charstring uri, charstring version optional, // default: 'RTSP/1.0', or as configured record { charstring
* } headers, charstring body optional, // default: '' } type record RtspResponse { integer status, charstring reason, charstring protocol, record { charstring
* } headers, charstring body, } type port RtspClientPortType message { in RtspRequest; out RtspResponse; }