Skip to main content

Media control error codes (mpbx-media-control, rtpengine NG)

Codes raised by mpbx_media_control (W2-MED-01), the client the B2BUA uses to anchor media on rtpengine. Kinds map to HTTP statuses in the API layer as for the common codes. Messages name the rtpengine node and the NG command at most; they never contain SDP bodies, tags, phone numbers or addresses. See the media-control guide.

CodeKindMeaningWhat to do
MPBX-RTPE-TIMEOUTunavailableThe node did not answer within the retransmission budget (retransmit_ms × attempts, 1.5 s by default). Retryable. Counts towards marking the node down.Check that rtpengine runs and that media_control.nodes[].address matches its --listen-ng. Watch mpbx_rtpengine_nodes_up and rtpe:nodes.
MPBX-RTPE-UNREACHABLEunavailableThe NG port refused the request (ICMP port unreachable on UDP, connection refused on TCP, HTTP failure). Retryable. Counts towards marking the node down.Start rtpengine, or fix the address and transport of the node.
MPBX-RTPE-NO-NODEunavailableEvery configured node is marked down, so a new call cannot be anchored. Existing calls keep their node.Bring a node back; it is marked up again after up_after successful health pings.
MPBX-RTPE-UNKNOWN-NODEnot_foundA session handle names a node that is no longer in the configuration (for example after a restart with a changed node list).Keep node names stable while calls are up.
MPBX-RTPE-REJECTEDinvalid_argumentrtpengine answered result: error (the message carries its error-reason, cut to 160 characters), for example "Unknown call-ID" for a session that was already deleted, or an SDP it could not parse. Not a node failure.Usually a call-state bug in the caller, or an invalid SDP from an endpoint.
MPBX-RTPE-PROTOCOLinternalThe reply was not valid NG: bad bencode, no cookie, no result, or an HTTP error status.Check that the address points at rtpengine's NG port and not at another service. Report it with the log line.
MPBX-RTPE-CODEC-UNSUPPORTEDinvalid_argumentThe codec policy asks rtpengine to transcode to a codec the stock build cannot encode (iLBC, AMR, AMR-WB: decode-only, W1-SPK-02 section 4.8) or one not enabled in this release (enabled: Opus, G.711, G.722, G.729; GSM is not yet). Such codecs still pass through when both legs offer them.Remove the codec from the transcode list.
MPBX-RTPE-TENANT-MISMATCHpermission_deniedA media session handle of one company was used with another company's context. Nothing was sent to rtpengine.A bug or an attack in the calling code: session handles must stay with the call that owns them.
MPBX-RTPE-SUBSCRIBE-PT-MISMATCHinvalid_argumentA subscribe answer SDP (media fork for recording) does not repeat every payload type of the subscribe request offer, telephone-event included; rtpengine would reject it (ADR-0004 decision 7). Nothing was sent.Build the answer with sdp::mirror_recvonly_answer.
MPBX-RTPE-CONFIGconfigBad media_control configuration: no nodes, a node name outside [a-z0-9_-]{1,32}, a duplicate name, or a zero interval or threshold.Fix the configuration.