09-14-2022 02:49 AM
Hello guys,
Does anybody know what's the point of "offer-all" at the end of the "voice-class codec" command?
Doesn't CUBE sends all codecs from the "voice class codec" even if we do not configure this "offer-all" or maybe I miss something?
Best Regards,
TC
09-14-2022 04:57 AM - edited 09-14-2022 04:59 AM
Hello Tom,
All codecs are offered by default only for delayed offer calls. For Early Offer you either need to configure a codec preference list with a specific list of codec or "offer all".
Regards,
Deepak Kumar
09-14-2022 06:27 AM
1 sec of Internet search gives you the answer.
https://www.cisco.com/c/en/us/td/docs/ios/voice/command/reference/vr_book/vr_v1.html
09-15-2022 12:04 AM
Hello Guys,
Thank you for your replies.
Here is the part of CUBE config:
voice class codec 2
codec preference 1 g711ulaw
codec preference 2 g729r8
codec preference 3 g729br8
dial-peer voice 2 voip
...
voice-class codec 2 (optional <offer-all>)
I have codec preference list inside "voice class codec", and "voice-class codec" applied into the dial-peer.
You want to tell me that CUBE wouldn't send all codec from the preference list for outgoing calls if I didn't specify "offer-all"? What would it send instead?
Maybe there is some catch with early/delayed offer as Deepak wrote. I have to check that.
Best Regards,
TC
09-15-2022 12:23 AM
I think, the important part is "outgoing offer" in the description.
My opinion:
If CUBE sends out an INVITE as early-offer and delayed-offer, then all the codecs from the list are in the SDP. Doesn't matter if the parameter is set, because CUBE is the one, that initiates the SDP exchange.
If CUBE receives an INVITE with SDP, then normally, CUBE would only respond with the codecs, that overlap with the codecs in the received SDP and it's configured codec list.
--> If the parameter "offer-all" is set, then CUBE would respond with all codecs in the codec list.
09-26-2022 02:19 AM
Hello b.winter,
this should be the answer on my initial question regarding the offer-all:
When flow around and offer-all is configured, CUBE performs codec renegotiation even if mid-call
signaling block is configured globally.
Regarding the your explanation...
Regardless of the "offer-all" (configured or not) for outbound calls CUBE will always respond with the set of codecs which are subset of codec list from the inbound call leg (codec list it receives on inbound dial-peer) and which are configured under the codec preference list at the same time. CUBE will not even change the order/preference of codecs.
Here is the case:
voice class codec 1
codec preference 1 g711alaw
codec preference 2 g711ulaw
codec preference 3 g729r8
codec preference 4 g728
Codecs it receives on Inbound call leg:
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:116 iLBC/8000
a=rtpmap:18 G729/8000
Codec set that CUBE send out to outbound call leg (regardless of the offer-all):
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
It will not send g728 (from the preference list) nor iLBC (from the inbound call leg).
Best regards,
TC
09-29-2024 06:06 PM - edited 09-29-2024 06:15 PM
Hey Tomc101010
There is a detailed explained on book 'Understanding session border controllers" page 405
In a nutshell CUBE (by default and without command offer all) uses codec filtering when sending outbound invite. "Offer all" change this.
Without "offer all" on outbound voice class
Inbound Invite (SDP G711ulaw, Opus, G729)
Inbound Dial Peer (G711ulaw, G711alaw, Opus)
Outbound Dial Peer (Opus, iLbc)
Outbound Invite (SDP Opus)
Step 1: Invites comes in with (SDP G711ulaw, Opus, G729) and matches Inbound Dial Peer (G711ulaw, G711alaw, Opus) --> G729 is filter out by inbound voice class
Step 2: Outbound Invite (before filtering) has G711ulaw and Opus and matches Outbound Dial Peer (Opus) --> G711ulaw is filtered out by outbound voice class.
Step 3: Outbound invite is send with Opus
With "offer all" on outbound voice class
Inbound Invite (SDP G711ulaw, Opus, G729)
Inbound Dial Peer (G711ulaw, G711alaw, Opus)
Outbound Dial Peer (Opus, ilbc)
Outbound Invite (SDP Opus,ilbc)
Step 1: Invites comes in with (SDP G711ulaw, Opus,G729) and matches Inbound Dial Peer (G711ulaw, G711alaw, Opus) --> G729 is filter out by inbound voice class
Step 2: Outbound Invite has G711ulaw and Opus and matches Outbound Dial Peer (Opus,ilbc) --> No filtered
Step 3: Outbound invite is send with Opus and ilbc
It is possible that negocciation with remote end eventually selects ilbc, that's why local transcoding (LTI) is recommended on CUBE when removing default filtering mechanism.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide