Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Gliffy Diagram
nameAlice calls Bob

1. incoming_call_offer_prefspref

After receiving an incoming offer create a list of preferred codecs between those received in the SDP offered by Alice, and Alice's endpoint configuration. This list will consist of only those codecs found in both.

...

remote_single - Order by what is received in the SDP offered by Alice, but the list will only contain the first, or 'top' item

2. outgoing_call_offer_prefspref

Before sending an outgoing offer create a list of preferred codecs to be sent. This list will consist of codecs specified by Bob's endpoint configuration, but may be ordered, or limited by an optional "remote" list of codecs given by a "caller" (e.g. Alice's joint list of codecs created after receiving an offer).

...

remote_single - Order by what is optionally given by a "caller", but the list will only contain the first, or 'top' item

3. outgoing_call_answer_prefspref

After receiving an outgoing offer's answer create a list of codecs between those received in the SDP answer from Bob, and the joint list previously used when sending the offer.

...

remote_single - Order by what is received in the SDP answer from Bob, but the list will only contain the first, or 'top' item

4. incoming_call_answer_prefspref

Before sending an answer to an incoming offer create a list of codecs to be sent to Alice. This list will consist of codecs from the joint list originally created after receiving the initial offer, but may be ordered, or limited by an optional "remote" list of codecs given by a "callee" (e.g. Bob's joint list of codecs created after receiving his answer).

...

Offer or respond with the single most preferred codec instead of sending the list of all joint codecs. This limits the codec choice to exactly what is preferred. Enabling this option may increase the likelihood of transcoding, renegotiation, or both. This option currently exists, and while it is essentially replaced by the options above it should be kept and maintained for backward compatibility. Also if this option is specified then incoming_call_offer_pref is not allowed to be, and vice versa.

Allowed values: yes or no (default)

...

As you can see at point 1. the list of codecs is the intersection of those codecs given by Alice's phone, and those specified in her configuration. The list is ordered by Alice's configuration because local was specified for the incoming_call_offer_prefspref, and here "local" means use Alice's configuration. This list is then passed across the bridge to be used as the "remote" list in the outgoing offer to Bob. However, Bob's outgoing_call_offer_prefspref is also set to local. Again in this instance it means order the resulting list that will be used in the outgoing offer by Bob's configuration. So to get the list at point 2. Asterisk uses those codecs from his configuration, and orders it by that configuration. The list at point 2. is then sent to Bob's phone.

...

Now, position 3.'s list is the intersection of those codecs given by Bob's phone, and those used in the original offer to Bob (i.e. the list from position 2.). Bob's configuration specifies outgoing_call_answer_prefspref=local, so this means to order by the "local" list (again the list from position 2.). This list is passed back across the bridge to be used when forming an answer to Alice. Alice has specified to use the "local" codec list for preference ordering. The "local" list in this case is the codec list created in position 1. So, the list at position 4. contains the codecs from and ordered by 1. This list is then sent to Alice.

...

Expand
titleA. incoming_sdp_receive_prefs=local

1. Alice's incoming_call_offer_prefspref

2. Bob's outgoing_call_offer_prefspref3. Bob's outgoing_call_answer_prefspref4. Alice's incoming_call_answer_prefspref

local

g722, ulaw, alaw

 

local

alaw, ulaw, opus, g722

local

alaw, ulaw

local

g722, ulaw, alaw

local_limit

ulaw, alaw

local_single

g722

remote

alaw, ulaw, g722

remote_limit

alaw, ulaw

remote_single

alaw

local_single

alaw

local

g722, ulaw, alaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

ulaw, alaw

local

g722, ulaw, alaw

local_limit

ulaw, alaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

remote_single

ulaw

local

g722, ulaw, alaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

local_limit

alaw, ulaw, g722

local

alaw, ulaw

local

g722, ulaw, alaw

local_limit

ulaw, alaw

local_single

g722

remote

alaw, ulaw, g722

remote_limit

alaw, ulaw

remote_single

alaw

local_single

alaw

local

g722, ulaw, alaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

ulaw, alaw

local

g722, ulaw, alaw

local_limit

ulaw, alaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

remote_single

ulaw

local

g722, ulaw, alaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

local_single

alaw

local

alaw

local

g722, ulaw, alaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

local_single

alaw

local

g722, ulaw, alaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

alaw

local

g722, ulaw, alaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote_single

alaw

local

g722, ulaw, alaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

g722, ulaw, alaw, opus

local

ulaw, alaw

local

g722, ulaw, alaw

local_limit

ulaw, alaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

local_single

ulaw

local

g722, ulaw, alaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

remote

ulaw, alaw

local

g722, ulaw, alaw

local_limit

ulaw, alaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

remote_single

ulaw

local

g722, ulaw, alaw

local_limit

ulaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw

remote_single

ulaw

remote_limit

g722, ulaw, alaw

local

ulaw, alaw

local

g722, ulaw, alaw

local_limit

ulaw, alaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

local_single

ulaw

local

g722, ulaw, alaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

remote

ulaw, alaw

local

g722, ulaw, alaw

local_limit

ulaw, alaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

remote_single

ulaw

local

g722, ulaw, alaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

remote_single

g722

local

488

local

488

local_limit

488

local_single

488

remote

488

remote_limit

488

remote_single

488

local_single

488

local

488

local_limit

488

local_single

488

remote

488

remote_limit

488

remote_single

488

remote

488

local

488

local_limit

488

local_single

488

remote

488

remote_limit

488

remote_single

488

remote_single

488

local

488

local_limit

488

local_single

488

remote

488

remote_limit

488

remote_single

488
Expand
titleB. incoming_sdp_receive_prefs=remote

1. Alice's incoming_call_offer_prefspref

2. Bob's outgoing_call_offer_prefspref3. Bob's outgoing_call_answer_prefspref4. Alice's incoming_call_answer_prefspref

remote

g722, alaw, ulaw

local

alaw, ulaw, opus, g722

local

alaw, ulaw

local

g722, alaw, ulaw

local_limit

alaw, ulaw

local_single

g722

remote

alaw, ulaw, g722

remote_limit

alaw, ulaw

remote_single

alaw

local_single

alaw

local

g722, alaw, ulaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

ulaw, alaw

local

g722, alaw, ulaw

local_limit

alaw, ulaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

remote_single

ulaw

local

g722, alaw, ulaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

local_limit

alaw, ulaw, g722

local

alaw, ulaw

local

g722, alaw, ulaw

local_limit

alaw, ulaw

local_single

g722

remote

alaw, ulaw, g722

remote_limit

alaw, ulaw

remote_single

alaw

local_single

alaw

local

g722, alaw, ulaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

ulaw, alaw

local

g722, alaw, ulaw

local_limit

alaw, ulaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

remote_single

ulaw

local

g722, alaw, ulaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

local_single

alaw

local

alaw

local

g722, alaw, ulaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

local_single

alaw

local

g722, alaw, ulaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

alaw

local

g722, alaw, ulaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote_single

alaw

local

g722, alaw, ulaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

g722, alaw, ulaw, opus

local

alaw, ulaw

local

g722, alaw, ulaw

local_limit

alaw, ulaw

local_single

g722

remote

alaw, ulaw, g722

remote_limit

alaw, ulaw

remote_single

alaw

local_single

alaw

local

g722, alaw, ulaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

ulaw, alaw

local

g722, alaw, ulaw

local_limit

alaw, ulaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

remote_single

ulaw

local

g722, alaw, ulaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

remote_limit

g722, alaw, ulaw

local

alaw, ulaw

local

g722, alaw, ulaw

local_limit

alaw, ulaw

local_single

g722

remote

alaw, ulaw, g722

remote_limit

alaw, ulaw

remote_single

alaw

local_single

alaw

local

g722, alaw, ulaw

local_limit

alaw

local_single

g722

remote

alaw, g722, ulaw

remote_limit

alaw

remote_single

alaw

remote

ulaw, alaw

local

g722, alaw, ulaw

local_limit

alaw, ulaw

local_single

g722

remote

ulaw, alaw, g722

remote_limit

ulaw, alaw

remote_single

ulaw

remote_single

ulaw

local

g722, alaw, ulaw

local_limit

ulaw

local_single

g722

remote

ulaw, g722, alaw

remote_limit

ulaw

remote_single

ulaw

remote_single

g722

local

488

local

488

local_limit

488

local_single

488

remote

488

remote_limit

488

remote_single

488

local_single

488

local

488

local_limit

488

local_single

488

remote

488

remote_limit

488

remote_single

488

remote

488

local

488

local_limit

488

local_single

488

remote

488

remote_limit

488

remote_single

488

remote_single

488

local

488

local_limit

488

local_single

488

remote

488

remote_limit

488

remote_single

488

...