in Picture 1, even if codecs priority start with G729 and alaw both sides between B side and Asterisk 13.14 , call flows alaw-g729. Why asterisk dont translate alaw to g729 . In addition , it shocks me , both side can hear each other.
in Picture 2, B starts calls, the same codec priority and B and middle asterisk should talk with G729 but middle asterisk dont translate codecs?
in Picture 2 , Middle Asterisk can translate 1 rtp flow, but dont touch other side
Because Alaw is an acceptable codec on the outgoing side. Transcoding will only happen of there is no acceptable codec.
(a) A is not allowed to send No SDP!
(b) A-law is an acceptable codec to B, so there is no need to transcode.
G.729 is not an acceptable codec to A, so transcoding is necessary.
Although you call it negotiation, SIP doesn’t actually negotiate codecs; it simply tells the other side the set of codecs that is acceptable to it and the order of preference. The sender can use any or all of the acceptable codecs during the session. It can even do so if it didn’t offer them itself, although Asterisk will not do that.
So asterisk should understand and convert it which codecs coming from RTP payload? If middle asterisk can send re-invite or update ,can it force to g729 codec?
Here is another example,
Between middle Ast and Bside , talks alaw but priority G729, alaw, i thought it should be G729 but talks with alaw and voice ok.
The answer about restricting the codecs (no) was given on the forum less than a week ago.
Note that, it is possible to set channel variables to constrain the codecs offered to the B side and accepted from the A side, as long as you do so before calling the B side or answering the A side. Again details were posted less than a week ago.
Your latest image gives “500 Origin Not Reachable”!
I would suggest filing an issue[1] with Asterisk logs, the configuration, etc as when asymmetric is not enabled the incoming and outgoing RTP flow for a single session should use the same codec. They shouldn’t be different.
it is solved with
only g729 codec is configured for B trunk and B side and B trunk always talk each other G729
A-side and A trunk talks with G729 or Alaw.
Maybe there is a different between “pjsip reload” and “reload” for asymetric_rtp parameter. Because other server never failed like first , even if i tested so many times and same version.