RTPEngine removing PCMU and PCMA in the SIP 200 OK answer with custom fmtp:0 vad=yes
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
- Domain
- audio-video-rtc
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
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sipwise/rtpengine
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 3 days
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 75/100
Maintainers usually reply within 3 days
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 15/100
sipwise/rtpengine#2197 · 1 comment ·
Maintainers usually reply within 3 days
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 38/100
sipwise/rtpengine#2190 · 1 comment ·
Maintainers usually reply within 3 days
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
sipwise/rtpengine#2181 · 4 comments ·
Maintainers usually reply within 3 days
All issues in sipwise/rtpengine
Similar issues
-
documentation Needs Triage
Difficulty 1/5 Under an hour Newbie friendliness 93/100
Maintainers usually reply within 1 day
-
Proposed Text EditsOpen
Difficulty 1/5 Under an hour Newbie friendliness 82/100
curl/everything-curl#658 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 82/100
PDLPorters/pdl#561 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
objectionary/eolang.sty#197 ·
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
radiator-software/p5-net-ssleay#577 ·
Maintainers usually reply within 1 day