Skip to content

Commit

Permalink
Don't use hardcoded payload type for DTMF in SIP plugin (#3299)
Browse files Browse the repository at this point in the history
  • Loading branch information
ywmoyue committed Dec 5, 2023
1 parent a85a734 commit ba92d97
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
7 changes: 6 additions & 1 deletion src/plugins/janus_sip.c
Original file line number Diff line number Diff line change
Expand Up @@ -1047,6 +1047,7 @@ typedef struct janus_sip_media {
gboolean updated;
int video_orientation_extension_id;
int audio_level_extension_id;
int dtmf_pt;
} janus_sip_media;

typedef struct janus_sip_dtmf {
Expand Down Expand Up @@ -1504,6 +1505,7 @@ static void janus_sip_media_reset(janus_sip_session *session) {
session->media.pre_hold_video_dir = JANUS_SDP_DEFAULT;
session->media.video_orientation_extension_id = -1;
session->media.audio_level_extension_id = -1;
session->media.dtmf_pt = -1;
janus_rtp_switching_context_reset(&session->media.acontext);
janus_rtp_switching_context_reset(&session->media.vcontext);
}
Expand Down Expand Up @@ -6383,6 +6385,7 @@ void janus_sip_sdp_process(janus_sip_session *session, janus_sdp *sdp, gboolean
session->media.has_audio = TRUE;
session->media.remote_audio_rtp_port = m->port;
session->media.remote_audio_rtcp_port = m->port+1; /* FIXME We're assuming RTCP is on the next port */
session->media.dtmf_pt = janus_sdp_get_codec_pt(sdp, -1, "dtmf");
if(m->direction == JANUS_SDP_SENDONLY || m->direction == JANUS_SDP_INACTIVE)
session->media.audio_send = FALSE;
else
Expand Down Expand Up @@ -7451,8 +7454,10 @@ gpointer janus_sip_sofia_thread(gpointer user_data) {

/* Check peer RTP has RFC2833 and push event */
static void janus_sip_check_rfc2833(janus_sip_session *session, char *buffer, int len) {
if(session->media.dtmf_pt <= 0)
return;
janus_rtp_header *rtp_header = (janus_rtp_header *)buffer;
if(rtp_header->type != JANUS_RTP_RFC2833_DEFAULT_PAYLOAD_TYPE)
if(rtp_header->type != session->media.dtmf_pt)
return;
int plen = 0;
char *payload_buffer = janus_rtp_payload(buffer, len, &plen);
Expand Down
2 changes: 0 additions & 2 deletions src/rtp.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,6 @@ typedef struct janus_rtp_rfc2833_payload {
#endif
} janus_rtp_rfc2833_payload;

#define JANUS_RTP_RFC2833_DEFAULT_PAYLOAD_TYPE 101

/*! \brief a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level */
#define JANUS_RTP_EXTMAP_AUDIO_LEVEL "urn:ietf:params:rtp-hdrext:ssrc-audio-level"
/*! \brief a=extmap:2 urn:ietf:params:rtp-hdrext:toffset */
Expand Down

0 comments on commit ba92d97

Please sign in to comment.