[asterisk-dev] Asterisk 18 Planning: Codec Negotiation
Michael Maier
m1278468 at mailbox.org
Thu Jan 30 15:01:23 CST 2020
Hello Kevin,
thanks for your clarification. Anyway, I think I don't understand it
completely right now. Please see question below.
Thanks
Michael
On 30.01.20 at 16:49 Kevin Harwell wrote:
> On Thu, Jan 30, 2020 at 4:55 AM Michael Maier <m1278468 at mailbox.org> wrote:
>
>> ....
>>
>> Could the planned codec handling globally described like this:
>>
>>
> Overall I think you have the gist of it. See below, though, for a couple of
> clarifications.
>
>
>>
>> The codec handling is based on 4 lists.
>>
>> 1. incoming_sdp_receive_prefs
>> This list is created based on the allow line
>> of the callers extension and the SDP offer of
>> the phone (local ...).
>>
>> Or:
>>
>> This list is created based on the SDP offer of
>> the caller and the allow line of the extension
>> (remote).
>>
>> Codecs not given in the callers allow line are
>> dropped. Both list variants may have a
>> different codec order.
>>
>>
>> 2. outgoing_sdp_send_prefs
>> The list can be created on base of the callees
>> allow line and list 1 (option local ...).
>>
>> Or:
>>
>> The list can be created on base of list 1
>> (option remote ...) and the callees allow line.
>>
>> Both lists may have a different codec order or
>> different codecs (if *_single is provided).
>>
>> Codecs not given in the callees allow line or
>> list 1 are dropped (*_limit).
>>
>>
> This is mostly correct, but for clarification selecting the "remote" or
> "local" value will always only contain those codecs from the endpoint
> configuration allow line. Or another way to say it is the resulting list is
> the intersection of the two lists (list 1 and allow=) plus the codecs in
> the allow line that are not in list 1. The order will change depending on
> which value is used.
>
> This means that if list 1 contains a codec not found in the endpoints
> allow= line then that codec will not be included in the resulting list. For
> example;
>
> list 1 = opus,ulaw,alaw
> allow= ulaw, alaw, g722
>
> Then if "remote" or "local" is chosen then the resulting list will never
> have opus in it.
Sorry, I don't understand at the moment, how it is possible to *not*
choose "remote" or "local". According to your documentation, "remote" is
the default if you don't provide any option to outgoing_sdp_send_prefs.
Maybe I missunderstood some more ... .
> Unless for some reason folks think it would make sense to
> make an offer to a device containing codec(s) that were not part of its
> Asterisk endpoint configuration definition.
>
>
>>
>> 3. outgoing_sdp_receive_prefs
>> The list is created based on the received SDP
>> and list 2 (remote ...).
>>
>> Or:
>>
>> The list is based on list 2 and the received
>> SDP.
>>
>> These list variants may provide different codec
>> orders or different codecs (if *_single is
>> provided).
>>
>> This list only contains codecs which can be
>> found in the received SDP and in list 2 at the
>> same time.
>>
>>
>> 4. incoming_sdp_send_prefs
>> This list is created based on list 3 and 1
>> (remote ...)
>>
>> Or
>>
>> the list is based on 1 and 3 (local ...).
>>
>> The Codec order may differ between those
>> variants.
>>
>> This list only contains codecs which can be
>> found in list 3 and 1 at the same time
>> (*_limit).
>>
>>
> Again this is mostly the case, but pretty much the same description from
> above applies here too, i.e. the resulting list will never have codecs in
> it that were not part of list 1.
More information about the asterisk-dev
mailing list