cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1120
Views
11
Helpful
6
Replies

CUBE - "offer all" for voice-class codec

tomc101010
Level 1
Level 1

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

6 Replies 6

Deepak Kumar R
Level 1
Level 1

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

b.winter
VIP
VIP

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

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.

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

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.