Skip to content
This repository has been archived by the owner on Jul 12, 2023. It is now read-only.

kurento telephone-event(2833) media transport #585

Open
logcy opened this issue Mar 25, 2021 · 7 comments
Open

kurento telephone-event(2833) media transport #585

logcy opened this issue Mar 25, 2021 · 7 comments
Projects

Comments

@logcy
Copy link

logcy commented Mar 25, 2021

Prerequisites

These are MANDATORY, otherwise the issue will be automatically closed.

Issue description

Kurento cannot transmit two audio streams at the same time

Context

When I try to use kurento to negotiate media with the other party, the other party will send two media types: pcma (pt 8) and telephone-event (2833) (pt 100) to negotiate with me. I configure telephone-event/ in Kurento. After the media type of 8000, the two media types of pcma and telephone/8000 can be negotiated with the other party, and the other party will transmit two m media streams, one is the media stream of Pcma, the other is the media stream of telephone-event, pcma The Pt used by the media stream is 8, and the pt used by the telephone-event is 100. At this time, kurento will report an error (Unknown PT: 100, expected: 8). How can I solve this problem?

How to reproduce?

Expected & current behavior

(Optional) Possible solution

Info about your environment

About Kurento Media Server

About your Application Server

  • Programming Language:
  • Kurento Client version:

About end-user clients

  • Device(s):
  • OS(es):
  • Browser(s):

Run these commands

cat /etc/lsb-release
kurento-media-server --version
dpkg -l | grep -Pi 'kurento|kms-|gst.*1.5|nice'
@github-actions
Copy link

Hello @logcy! 👋 we're sorry you found a bug... so first of all, thank you very much for reporting it.

To know about progress, check in Triage. All issues are considered Backlog Candidates until work priorities align and the issue is selected for development. It will then become part of our official Backlog.

@j1elo j1elo added this to Backlog Candidates in Triage Mar 25, 2021
@j1elo
Copy link
Member

j1elo commented Mar 25, 2021

please copy an example of SDP Offer that is sent to the Kurento endpoint

@logcy
Copy link
Author

logcy commented Mar 26, 2021

1、I config kurento with telephone-event/8000:
{
"numAudioMedias": 1,
"numVideoMedias": 1,
"audioCodecs": [
{ "name": "PCMA/8000" },
{ "name": "telephone-event/8000" }
],
"videoCodecs": [
{ "name": "H264/90000" }
]
}
in SdpEndpoint.conf.json
2、The Upstream server send the offer :
image

3、then I reply the answer:
image
4、When the call is connected,I will receive two streams in the audio transmission channel, one is the voice stream of pcma(with pt 8) and the other is the button stream of telephone-event(with pt 101),then the kurento will give a error about "Unknown PT: 101, expected: 8"
5、rtp streamer:
image
6、kurento error:
image

@j1elo
Copy link
Member

j1elo commented Mar 26, 2021

I don't think that will work because Kurento does not support more than 1 video and 1 audio negotiated on each Endpoint. You can always use an Endpoint for each audio, though.

On the other hand, you said:

2、The Upstream server send the offer
3、then I reply the answer

but who is the "I" in "I reply the answer"? Are you building an SDP Answer on your own, in your application, ignoring what Kurento says? Well if you ignore the reply from Kurento, it's not strange that things don't work.

You have to pass the SDP Offer to Kurento, and then use the Answer that you get back:

String sdpOffer = signaling.receiveOffer();
String sdpAnswer = kurentoEndpoint.processOffer(sdpOffer);
signaling.sendAnswer(sdpAnswer);

where "signaling" is your way of sending and receiving SDP messages between clients and the Kurento server.

@j1elo
Copy link
Member

j1elo commented Mar 26, 2021

Now that I look at it a second time, I might understand now what you mean. There is in fact one audio media, but the payload in the RTP packets of this media might change dynamically, some times they could be 8, other times they could be 101.

This hasn't been tested before, because the main use case for Kurento is WebRTC comms, where the payload type doesn't change over time. So maybe the problem is that GStreamer (the library inside Kurento) gets the first PT, and configures itself for it, but Kurento won't accept more PT afterwards.

@logcy
Copy link
Author

logcy commented Mar 27, 2021

In the call center application, there is an IVR scenario, that is, the user navigates according to the phone buttons, and the application recognizes the user’s buttons through DTFM. There are three methods for DTMF transmission (In-band, RFC2833 (TeleponeEvent), SIPINFO). If you use RFC2833 (TeleponeEvent) For transmission, two pt-type streams pcma and TeleponeEvent will be transmitted on the same audio port. I have this problem now. Will you support this method of RTP streaming in the future? Is there any quick way I want to solve this problem now?

I just want to transfer the phone-event data from the upstream server to the downstream server without processing it. Please help, thanks.

image

I find it maybe can't find telephone-event depayload . How can I do ?

@kfbixc
Copy link

kfbixc commented Jun 30, 2021

any progress?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
Triage
Backlog Candidates
Development

No branches or pull requests

3 participants