Installation Instructions For Opus Are Incorrect – Maybe?

Home » Asterisk Users » Installation Instructions For Opus Are Incorrect – Maybe?
Asterisk Users 5 Comments

Before I got an log a ticket, can I just check I’m not doing anything wrong?

In 15.2, to install Opus:

1) run `make menuselect`
2) Highlight “Codec Translators” and press enter.
3) Scroll down to “codec_opus” in the section labeled “External”
4) Press enter to select the codec if it is not already selected.
… at this point, I see

XXX codec_opus

and a message to download codec opus from Digium, using this link:

http://downloads.digium.com/pub/telephony/codec_opus/README
(note: same as http://downloads.digium.com/pub/telephony/codec_opus/asterisk-15.0/x86-64/
)

The link says:

The preferred way of installing the Opus codec is to use menuselect in
Asterisk to automatically download and install the codec. From the Asterisk
top-level source directory, run

1) run `make menuselect`
2) Highlight “Codec Translators” and press enter.
3) Scroll down to “codec_opus” in the section labeled “External”
4) Press enter to select the codec if it is not already selected.

… well, you’ve guessed it, I’m in a loop now!

There’s another way:

” The alternative way to install codec_opus is to download a tarball
directly from digium.com. Once the tarball is downloaded and untarred,
perform the following steps:

1) Copy the codec_opus.so file into the Asterisk module directory (by default,
/usr/lib/asterisk/modules/).
2) Copy the codec_opus_config-en_US.xml file into the Asterisk external
documentation directory (by default,”

But there are two files:

-rwxr-xr-x 1 root root 354000 Dec 11 23:16 codec_opus.so*
-rwxr-xr-x 1 root root 226576 Dec 11 23:16 format_ogg_opus.so*

Not saying this latter part is beyond my comprehension, just that neither route matches the instructions 🙂

So… is it me being stupid, or should I log a ticket?

5 thoughts on - Installation Instructions For Opus Are Incorrect – Maybe?

  • Hi Jonathan,

    If you put the cursor on the line XXX, you will see what are the dependencies are missing to enable the option. In this case, it’s certainly curl that is missing on your system.

    Regards.

  • Ah, OK! No, it wasn’t curl that was missing, but I think the way it was phrased confused me. It says:

    “Download the Opus codec from Digium. See http://downloads.digium.com/pub/telephony/codec_opus/README. Depends on: xmlstarlet(E), bash(E), res_format_attr_opus(M)
    Support Level: external”

    However, while I managed to apt install xmlstarlet, I already had bash, and I can’t find res_format_attr_opus.

    Any ideas? Many thanks,

    Jonathan

  • 2018-01-27 10:55 GMT+01:00 Jonathan H :

    (M) means it’s a module, not it’s an error. Do you relaunch configure after xmlstarlet install ?
    For bash error, no idea.

  • Many thanks! Stupid mistake of mine, I hadn’t tried when I saw bash was still on (E) (Error, I guess?).

    But then I did ./configure and it said (among other things)

    checking for sh… /bin/bash checking for bash… /bin/bash checking for xmlstarlet… /usr/bin/xmlstarlet checking for curl-config… /usr/bin/curl-config checking for the version of libcurl… 7.55.1
    checking for libcurl >= version 7.10.1… yes checking whether libcurl is usable… yes checking for curl_free… yes

    Then of course, make menuselect worked and I now have opus!

    Hmm, as it’s free and open, I wonder why opus isn’t a core codec?

    Anyway, thanks for the help.

    Jonathan

  • Digium seems to have some concerns regarding patent issues with Opus. As such it will not distribute Opus. Rather, it will only distribute a binary build of such a codec, that comes with a number of strings attached, even thought a price tag for the end user is not one of them.

    I am not a lawyer. I don’t know of any specific secret information Digium’s lawyers may know about specific patents that may be an issue here. I’ll just point out that many companies, including the one I work for the company I work for see no issue with using it and find no patent issue here.

    As such we use an external patch. See https://github.com/traud/asterisk-opus .

    Packages of Asterisk in any major distribution include this patch or equivalents.

    (Same should go for wp8 and wp9, and av1 in the future, if you care about video)