I’m facing completely choppy sound. The wireshark trace shows, that there are a lot of codec changes without any trigger (means no options or reinvite or any other package).
Please note: PJSIP is a free and open source multimedia communication library written in C language implementing standard based protocols such as SIP, SDP, RTP, STUN, TURN, and ICE. It combines signaling protocol (SIP) with rich multimedia framework and NAT traversal functionality into high level API that is portable and suitable for almost any type of systems ranging from desktops, embedded systems, to mobile handsets.
The call is initiated by asterisk and is received by the same asterisk conference room via Phone extension -> asterisk -> provider A -> provider B -> asterisk.
Asterisk initially sends invites using g722 and g711 and gets exactly this invite back as incoming call. The answer is g722,g711 in the ok sdp.
Now, Asterisk can’t decide, which codec to use. It frequently changes the codec just as it likes to apparently without any visible reason.
[2017-05-11 17:28:03] DEBUG[C-0000003a]: res_rtp_asterisk.c:3634 ast_rtp_write: Ooh, format changed from none to alaw
0000003a -> inbound channel (callee)
00000039 -> outbound channel (caller)
If I’m doing exactly the same call originated with another extension, there can’t be seen these frequent changes. But the strange thing is, that in both cases the part between extension and asterisk doesn’t show any codec changes … .
Deeper investigations show, that if the conference (callee) sends the first rtp package (-> g711 – should be g722), things are going choppy, if the extension (caller) sends the first package (g722), things are running stable.
Any idea to convince asterisk always to use the first codec of ok sdp or how to convince asterisk to put only one codec to ok sdp (the first).