Hi team, I am trying to change parameter RTP payload type (OPUS Code is dynamic) on FreePBX15 (free version) for an academic research. RTP media direct is a pre-requisite for my research, but something is wrong after debug with Wireshark, Linphone´s logs (two different extensions using PJSIP config) and FreePBX log.
During SIP/SDP negotation (200 Invite, etcetc…), FreePBX15 receive a RTP Payload type 96 from one of Linphones and delivery to the other calling leg( extension) another RTP Payload Type, 107 in my case.
So, In spite of local linked is closed (no Firewalls, no NAT, no routers …) RTP media direct does not allow pass audio (VoIP call). If I use ITU-T G.722 RTP media direct works perfectly, no connectivity problems. I have noticed on some topics in community and research with GenAI that I would need to change files like: “pjsip.endpoint_custom_post.conf”, I made it using just allowance to Opus and prefer type = 107 (or 96), I tried both. But, changing configuration files - FreePBX seems locked or somethig like that and it does´not allow me to authenticate anymore on extensions. It seems there are some kind of security or protection in Free version to avoid someone change config. files. There is no interface GUI to change them.
Is there any different way or good hint to solve it ? Locked on it, for many hours
Each side is independent, it is unlikely you’ll get the same payload and direct media unless you modify Asterisk. There is no control over payload types in configuration.
Hello, I understand. I noticed that Linphone desktop for default RTP Payload Type = 96, debugging very initial SIP/SDP session (INVITE sip:[email protected]), on the other hand, default for FreePBX is RTP Payload type = 107. So, when Direct Media close connection between extensions audio packet are discarded. Unknow Rtp payload type from both extensions. How can I change on FreePbx15 in a persistent way RTP Payload type for 96 ? So the connection will work very well.
I will try to change it there,
Neverthless, just a suggestion to R&D team: consider a robust and modern Opus codec on the road.
You should change the software to configure it in the future, since the way it is built it is impossible to use RTP Media direct (flow of RTP directly between extensions…) with Opus Codec. Just to let you know, I have tested with softphone Zoiper 5 and they use RTP payload type 101 or 98 and the bad situation remains …
Asterisk is an open source project, anyone is able to discuss changes and submit changes. Work has been done to lay the foundation for doing such things, but noone as of this time has invested time into furthering it. Direct media in the real world is not widely used.
I think 96 is just the first available dynamic payload type. For lower numbered ones, there is a predefined detailed type, but for 96 upwards, the type has no meaning without a line in the SDP that gives the full name of the type. There can be additional SDP lines that further qualify the meaning of a particular number, for that session.
Asterisk is a back to back user agent, so the the two legs are different sessions.
I noticed, you are right, Opus Codec operates in a dynamic range of RTP payload type: 96 - 127. Yes, SIP/SDP session negotiate the right RTP payload in very beginning during call setup. You can see by Wireshark or Linphone´s logs or even FreePBX long. I spent many hours debugging it, since I was trying to use RTP Media direct and Opus codec for an academic thesis.
Anyway, I will give up this way and come back to my 2 extensions, and 2 leg calls through FreePBX 15 that bring me some other problems. It is a pity, if you notice in Interner WebRTC uses Opus Codec with a Cloud Server and RTP Direct Media …