The VoipMediaEngine..::.RAW_RTP_DATA type exposes the following members.
The max number of bytes of storage allocated for the RTP packet. The value of this member is the same as the value specified for the MaxRtpPacketLength startup parameter. If the MaxRtpPacketLength
The number of bytes in the "application updated" RTP buffer. This value is only used when the media engine is ready to transmit an RTP media buffer. The media engine will initialize this member to zero and then call the user's callback procedure. Application software should not change this value unless one of the following is true:
The application has modified the RTP header in some way:
If your application has modified the RTP header, you must set this value to the size of the RTP packet that will be transmitted. Doing so will signal to the media engine that internal RTP header manipulations should not be performed. If you modify the RTP header and you do not set this value, the media engine will overwrite your RTP header changes before it transmits the RTP media packet.
The application has encrypted the entire RTP packet:
If your application has encrypted the entire RTP packet (RTP header and sample payload data), you must set this value to the size of the RTP packet that will be transmitted. Doing so will signal to the media engine that internal RTP header manipulations should not be performed. If you encrypt the complete RTP packet and you do not set this value, the media engine will corrupt your encrypted RTP packet.
The zero based phone line the RTP data is associated with.
By default this value is set to non zero by the media engine. An application can set this value to zero for any received or "ready-to-be-transmitted" RTP packet. Doing so will allow the media engine to ignore the RTP packet. Primarily used so application software can filter RTP media packets.
The number of bytes in the RTP header.
The raw RTP packet bytes.
The total number of bytes in the RTP packet.
For RTP packets that are being transmitted, this value will be the sum of the RTP header size (RtpHeaderLengthInBytes) + the total number of RTP payload bytes (SampleBufferLengthInBytes).
For RTP packets that are being received, this value represents the actual number of RTP packet bytes read from the network.
The number of bytes expected in the sample buffer. This value corresponds to the number of bytes per RTP payload as negotiated by SIP when the call was set up. For example, if the call was set up to use 20Ms frames of G729, then this value would represent the number of bytes in one full frame (20Ms) of G729 encoded audio. To obtain the actual number of sample bytes received from the network, see the RtpPacketLengthInBytes member of this structure.
Non zero if the RTP packet is being transmitted. Zero if the RTP packet is being received.
User supplied callback data. This is the same value that was specified when the RTP callback was registered.