RTP EDRs

Introduction

The n2sip package includes the RtpApp component which is responsible for the streaming of media when instructed to do so by one of the other SIP Applications, e.g.

Note that the LhoSipApp is also capabable of playing announcements using an External SRP, in which case the RtpApp is not used and the EDRs described herein do not apply.

Common Format

The configuration parameters for configuring EDR output including filename structure and location is defined in the configuration documentation for the EdrApp which is a base component provided by the n2svcd package.

All EDRs are written by the EdrApp application using its file and record formatting rules.

Refer to the n2svcd base documentation for more details on configuring and managing EDR streams, and on the syntax/encoding details for N-Squared EDRs.

RTP-ESTABLISH EDR

The RTP-ESTABLISH EDR Event indicates that an RTP audio stream was established on behalf of one of the other SIP Applications.

Example:

2022-08-30 05:11:33.000<parker~RTP~1661835404~08d3972a>RTP-ESTABLISH|STREAM_NUM=1|CALL_ID=148500146@172.18.0.1
|ENCODING=PCMU/8000|LOCAL_IP=172.18.0.1|LOCAL_PORT=6972|REMOTE_IP=172.18.0.1|REMOTE_PORT=3668|SUFFIX=.ul

Field Type Description
STREAM_NUM Integer A sequential number for each RTP stream established within a single controlled call.
MODE OFFER / ANSWER / OFFER/ANSWER Specifies that the EDR relates to only the SDP Offer generated by us, or only the ANSWER received by us, which will occur if and only if the RTP stream establishment is done using pattern 2 from RFC 6337.
When this field is present, there should be two EDRs consisting of one partial OFFER and one partial ANSWER.
(Default = this is a single EDR generated when both the SDP Offer and SDP Answer are both known).
CALL_ID String The SIP Call ID associated with the A-Leg.
ENCODING String The name of the specific encoding used when constructing and streaming the RTP for this interaction.
This is the name as configured in the rtp_audio_encodings parameter of the RtpApp.
This is not present for MODE = OFFER.
LOCAL_IP IP Address The local numeric IPv4 address used for the RTP stream (the RtpApp's address).
LOCAL_PORT Integer The local UDP port number used for the RTP stream (the RtpApp's address).
REMOTE_IP IP Address The remote numeric IPv4 address used for the RTP stream (the A-Leg's far-end address).
This is not present for MODE = OFFER.
REMOTE_PORT Integer The remote UDP port number used for the RTP stream (the A-Leg's far-end address).
This is not present for MODE = OFFER.
SUFFIX String The file suffix used to determine the announcement audio files for this interaction.
This is not present for MODE = OFFER.

RTP-PLAY EDR

The RTP-PLAY EDR Event indicates that an RTP audio interaction occurred on the A-Leg.

Example:

2022-08-30 05:11:33.757<parker~RTP~1661835404~08d3972a>RTP-PLAY|STREAM_NUM=1|CALL_ID=148500146@172.18.0.1
|FILES=Goodbye|LANGUAGE=English|MAX_SECS=300|MESSAGE_ID=25204|PLAY_ID=2|REASON=COMPLETED

Field Type Description
STREAM_NUM Integer A sequential number for each RTP stream established within a single controlled call.
This field is redundant, because it appears in the preceding RTP-ESTABLISH EDR.
CALL_ID String The SIP Call ID associated with the A-Leg.
This field is redundant, because it appears in the preceding RTP-ESTABLISH EDR.
CANCEL_DIGIT [*#0-9A-F] The Cancel Input Digit used for the interaction (if any).
Present only if this is a prompt-and-collect interaction.
Note that the SCP may in theory specify E and F for this value, although these are not valid digits for INAP-compatible DTMF detection according to CCITT specifications Q.23 [7] and Q.24.
END_DIGIT [*#0-9A-F] The End of Input Digit used for the interaction (if any).
Present only if this is a prompt-and-collect interaction.
Note that the SCP may in theory specify E and F for this value, although these are not valid digits for INAP-compatible DTMF collection according to CCITT specifications Q.23 [7] and Q.24.
ERROR String A human-readable error string.
This is always present in the case where REASON = ERROR (soft error).
This may be present in the case where REASON = SHUTDOWN (hard error).
FIRST_DTO Integer The timeout in seconds allowed for first digit entry.
Present only if this is a prompt-and-collect interaction.
INTER_DTO Integer The timeout in seconds allowed for second-or-subsequent digit entry.
Present only if this is a prompt-and-collect interaction.
INTERRUPTABLE 0 / 1 Will the prompt announcement be interrupted by entry of the first digit.
Present only if this is a prompt-and-collect interaction.
LANGUAGE String [Required] The name of the language used for this interaction.
This field is always present, our local default will be applied if no language was explicitly set.
MAX_DIGITS Integer The maximum number of digits which may be entered during this interaction.
Present only if this is a prompt-and-collect interaction.
MAX_SECS Integer The maximum duration allowed by the service logic for the interaction.
If the interaction reaches this time (e.g. by repeated re-prompts or cancelled input) then the interaction will be forced to completion and will return to service logic, discarding any collected digits.
REPETITION Integer The number of times this announcement will be played (subject to the limit of the maximum duration or interruption).
Present only when the requested repetition is greater than one.
MESSAGE_ID Integer The elementaryMessageID in the case where only one message ID is requested.
MESSAGE_IDS Integer List The elementaryMessageIDs in the case where more than one message ID is requested.
This is a comma-separated list in the EDR.
FILES String The sequence of announcement audio fragment filenames to be played.
A filename preceded by "*" indicates a variable part synthesis fragment.
A number preceded by "+" indicates a silence in milliseconds.
MIN_DIGITS Integer The minumum number of digits which must be entered during this interaction.
Present only if this is a prompt-and-collect interaction.
PLAY_ID Integer A sequential number for each RTP-PLAY within a single established RTP stream.
REASON COMPLETED / LIMITED / ERROR / SHUTDOWN Indicates how this particular play announcement ended.
COMPLETED - Normal successful completion.
LIMITED - Reached maximum duration during interaction.
ERROR - A soft error occurred (e.g. unknown announcement ID).
SHUTDOWN - The session was shutdown by a hard error during announcement playing.
VARIABLE_PARTS Array A sequence of variable parts supplied in the interaction request.
Each part is recorded as [Type]:[Value], see details below.

Variable Part Types

The VARIABLE_PARTS fields in the RTP-PLAY EDR is a comma-separated list of the variable parts to be constructed and played according to the relevant language Codec construction rules.

Example: VARIABLE_PARTS=NUMBER:2589,INTEGER:3.

The following types of Variable Parts are supported:

Type Value Description
INTEGER Integer A value in the range 0-214748364.
NUMBER [0-9A-F] A sequence of hexadecimal digits.
Configuration may be used to map two of these digits to * and/or #.
TIME <HHMM> A 24-hour time in HHMM format.
DATE <YYMMDD> A date in YYMMDD format.
PRICE <DDDDDDCC> A price in cents, without decimal point.