Currently, A Leg propagates 2 IPs for RTP Media,
And asterisk, with direct media enabled on A and B side, doesn’t actually send any of the A Leg IP addresses to the B Leg SDP information.
Meaning that Direct media isn’t working, and Asterisk is using RTP resources
I’ve read a bit of SDP RFC and it seems that there is no restriction in having multiple IP addresses between
SDP
o= IP A
c= IP B, IP C, IP D
If someone could give any advice it will be greatly appreciated
Warm Regards
There is no way that that is compliant with RFC 4566. Multiple addresses are normally only used for multicast, and have to be either a group address or on multiple lines, in a media section.
Multiple addresses or “c=” lines MAY be specified on a per-media
basis only if they provide multicast addresses for different layers
in a hierarchical or layered encoding scheme. They MUST NOT be
specified for a session-level “c=” field
Asterisk only supports direct media for audio streams. It may well only do so for a single stream.
The only way you could have 2 IPs on the A leg, is if there is more than one media stream, in which case there will be an m= line between the c= lines.
Aterisk only uses direct media, if, amongst other things, it is not recording, not spying, and no feature codes are enabled.
Thanks for your reply, maybe i didn’t check RFC 4566,
Based on the shared screenshot, the Only IP that should be allowed for Direct Media is the one mentioned in the o=
parameter of the SDP session right?
The o= lines is not used for routing. Only the c= lines.
Maybe that is the nature of your original misunderstanding; there is only one media address in your original packet capture, that ending in 238.197. The one ending in 104.58 is the address of the entity originating the SDP, not a media address.
There are lots of reasons why Asterisk will refuse to use direct media, including: call recording, and the need to see RFC 2833/4733, or inband, DTMF digits, for feature code activation.
Thanks for your reply,
I’m trying to understand why my Asterisk is not sending the A Leg RTP IP addresses to my B Leg SDP packets,
The shared screenshot has a single IP in the c= parameters
Do you know how can i debug this?