An RTP module in pure JavaScript for node.js
JavaScript CoffeeScript
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 5 commits ahead of mscdex:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


node-rtp is an RTP module for node.js. It currently only supports sending audio only.


  • Node.JS v0.1.103+


See 'examples/sendg711.js' for how to send G.711 audio (you will need to provide the audio file -- the example works with a PCM mu-law encoded audio file). Currently, you will need to find a receiver program/device that plays incoming audio at least until receiving audio is implemented in node-rtp. FWIW, I am personally testing node-rtp with a Cisco IP phone (7961G with SIP firmware) over a LAN.


node-rtp currently exports one objects: RtpPacket.


Constructor: new RtpPacket(payload)

Creates a new instance of an RTP packet.

payload is simply a Buffer containing up to 512 bytes of audio data.

Note: The size of the payload may need to be less than 512 bytes, depending on what encoding you are using.


Gets/Sets the RTP packet's payload type. This must be a valid value from the table given in section 6 of RFC3551.


Gets/Sets the RTP packet's sequence number. This number must be incremented by 1 for each RTP packet in a continuous stream. This is useful for the receiver to detect if it has missed any packets in the stream.


Gets/Sets the RTP packet's timestamp. This number must be incremented by the number of samples contained in the payload (generally the length of the payload buffer) for each RTP packet in a continuous stream.


Gets/Sets the RTP packet's synchronization source identifier. This number must be a unique number that identifies the source of the outgoing audio.


Gets/Sets the RTP packet's payload. This is a buffer object containing audio samples.


Returns the fully assembled RTP packet as a buffer object for sending over the network.