Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

RTPEngine removing PCMU and PCMA in the SIP 200 OK answer with custom fmtp:0 vad=yes

Open
#1,969 4 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale

Research direction

The payload names no files or tests; it gives a reproducible SDP offer with fmtp:0 vad=yes and the 200 OK where PCMU/PCMA rtpmap are dropped. Start by reproducing the negotiation with the provided m=audio and fmtp lines, then read the SDP codec-negotiation path in rtpengine. Done means the answer retains rtpmap:0 and rtpmap:8 when the offer includes those codecs and fmtp, including when PCMU is first.

Written by the indexing model from the issue text.

Description

bug
rtpengine version the issue has been seen with

Version: 13.3.1.4+0~mr13.3.1.4-2.el9

Used distribution and its version

Rocky Linux 9.6 (Blue Onyx)

Linux kernel version used

5.14.0-570.23.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jun 26 19:29:53 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

CPU architecture issue was seen on (see uname -m)

None

Expected behaviour you didn't see

UA offer:
v=0
o=0122 1751622076 1751622076 IN IP4 176.35.43.136
s=-
c=IN IP4 xxx.xx.xx.xxx
t=0 0
m=audio 62422 RTP/AVP 0 8 18 9 100 99 98 97 96
a=fmtp:0 vad=yes
a=fmtp:8 vad=yes
a=fmtp:18 annexb=yes
a=fmtp:9 vad=yes
a=rtpmap:100 G726-40/8000
a=fmtp:100 vad=yes
a=rtpmap:99 G726-32/8000
a=fmtp:99 vad=yes
a=rtpmap:98 G726-24/8000
a=fmtp:98 vad=yes
a=rtpmap:97 G726-16/8000
a=fmtp:97 vad=yes
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-15
a=maxptime:240
a=ptime:20

RTPEngine offer to next server
v=0
o=user1 53655765 2353687637 IN IP4 xx.xx.xxx.xx
s=-
t=0 0
m=audio 14428 RTP/AVP 0 8 18 9 100 99 98 97 96
c=IN IP4 xx.xx.xxx.xx
a=rtpmap:0 PCMU/8000
a=fmtp:0 vad=yes
a=rtpmap:8 PCMA/8000
a=fmtp:8 vad=yes
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
a=rtpmap:9 G722/8000
a=fmtp:9 vad=yes
a=rtpmap:100 G726-40/8000
a=fmtp:100 vad=yes
a=rtpmap:99 G726-32/8000
a=fmtp:99 vad=yes
a=rtpmap:98 G726-24/8000
a=fmtp:98 vad=yes
a=rtpmap:97 G726-16/8000
a=fmtp:97 vad=yes
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-15
a=sendrecv
a=rtcp:14429
a=ptime:20
a=maxptime:240

Next Server SIP 200 OK response
v=0
o=XXXX 1770976398 1770976398 IN IP4 xx.xx.xxx.xxx
s=xxxx
c=IN IP4 xx.xx.xxx.xxx
t=0 0
m=audio 31674 RTP/AVP 0 8 96
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-16
a=ptime:20
a=sendrecv

Unexpected behaviour you saw

RTPEngine response with missing pcmu and pcma rtpmap for 200 OK
v=0
o=XXXX 2025317139 2025317139 IN IP4 xx.xx.xxx.xxx
s=xxxx
t=0 0
m=audio 44780 RTP/AVP 96
c=IN IP4 xx.xx.xxx.xxx
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-16
a=sendrecv
a=rtcp:44781
a=ptime:20

Steps to reproduce the problem

Using the following SDP shows the up issue.

m=audio 14428 RTP/AVP 0 8 18 9 100 99 98 97 96
c=IN IP4 xx.xx.xxx.xx
a=rtpmap:0 PCMU/8000
a=fmtp:0 vad=yes
a=rtpmap:8 PCMA/8000
a=fmtp:8 vad=yes
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=yes
a=rtpmap:9 G722/8000
a=fmtp:9 vad=yes
a=rtpmap:100 G726-40/8000
a=fmtp:100 vad=yes
a=rtpmap:99 G726-32/8000
a=fmtp:99 vad=yes
a=rtpmap:98 G726-24/8000
a=fmtp:98 vad=yes
a=rtpmap:97 G726-16/8000
a=fmtp:97 vad=yes
a=rtpmap:96 telephone-event/8000
a=fmtp:96 0-15
a=sendrecv
a=rtcp:14429
a=ptime:20
a=maxptime:240

Intriguing caveat is that when pcma is first choice from the UA then the issue isn't seen.

Additional program output to the terminal or logs illustrating the issue

Anything else?

No response

Dominant language
Perl
Stars
992
Forks
459
PR merge metrics
No merged PRs in 30d

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sipwise/rtpengine

All issues in sipwise/rtpengine

Similar issues

More Perl issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.