wiki:RTPproxy/Protocol

RTPproxy Control Protocol

Overview

The RTPproxy is controlled by the signaling component by sending simple text command and reading reply. Each command is followed by exactly one response. There are two basic modes of operation: local and remote (UDP).

In the local mode server accepts connection from the client in the stream mode, reads command, executes it, writes response back to the socket and closes the connection.

In the remote mode, server receives datagram, decodes the command, executes it and sends back reply to the same IP:port the command was received from. The client is responsible for retransmitting command until it either receives reply or timeouts.

Set of commands in both local and remote modes is the same, however in the remote mode each command has to be preceded by the arbitrary text cookie separated from the rest of the command by the space. When sending response in the remote mode the RTPproxy also includes that cookie at the very beginning of the message. The cookie in response should allow client to match replies to different commands.

For example local mode exchange:

Command to proxy to check if protocol extension 20050322 is supported:

VF 20050322

Response from proxy:

1

The same exchange in the remote mode:

Command to proxy:

c3ba00fb992055e5379addc5206fa0b3 VF 20050322

Response from proxy:

c3ba00fb992055e5379addc5206fa0b3 1

General commands

The commands below retrieve information about the RTPproxy software itself and its current status.

Get version of RTPproxy, check software capabilities.

V[args]

Get statistics for all sessions.

I

Close all active sessions.

X

RTP session related commands

Commands in this section operate on a specific RTP session.

Update session, creating a new one if it doesn't exist.

U[args] callid addr port from_tag [to_tag [notify_socket [notify_args]]]

Lookup existing session (in reverse direction), update if necessary.

L[args] callid addr port from_tag to_tag

Delete session.

D callid from_tag to_tag

Start media playback

P[args] callid play_name codecs from_tag to_tag

Direction of the playback is defined by the order of the from_tag and to_tag parameters.

Stop playback.

S callid from_tag to_tag

Start recording media.

R callid from_tag to_tag

Start recording (copying, forking) of media to the destination specified by the copy_target parameter. The copy_target could either be local file or remote UDP address.

C callid copy_target from_tag to_tag

Get detailed information about the session

Q callid from_tag to_tag