--- /dev/null
+diff -dur asterisk-13.7.2.orig/main/codec_builtin.c asterisk-13.7.2/main/codec_builtin.c
+--- asterisk-13.7.2.orig/main/codec_builtin.c 2016-02-05 21:32:40.000000000 +0100
++++ asterisk-13.7.2/main/codec_builtin.c 2016-03-09 11:55:44.000000000 +0100
+@@ -38,6 +38,8 @@
+ #include "asterisk/format_cache.h"
+ #include "asterisk/frame.h"
+
++#include <opus/opus.h>
++
+ enum frame_type {
+ TYPE_HIGH, /* 0x0 */
+ TYPE_LOW, /* 0x1 */
+@@ -698,6 +700,11 @@
+ .get_length = g719_length,
+ };
+
++static int opus_samples(struct ast_frame *frame)
++{
++ return opus_packet_get_nb_samples(frame->data.ptr, frame->datalen, 48000);
++}
++
+ static struct ast_codec opus = {
+ .name = "opus",
+ .description = "Opus Codec",
+@@ -707,6 +714,7 @@
+ .maximum_ms = 60,
+ .default_ms = 20,
+ .minimum_bytes = 10,
++ .samples_count = opus_samples,
+ };
+
+ static struct ast_codec jpeg = {
+diff -dur asterisk-13.7.2.orig/main/Makefile asterisk-13.7.2/main/Makefile
+--- asterisk-13.7.2.orig/main/Makefile 2016-03-09 11:53:45.000000000 +0100
++++ asterisk-13.7.2/main/Makefile 2016-03-09 11:55:44.000000000 +0100
+@@ -40,6 +40,7 @@
+ AST_LIBS+=$(URIPARSER_LIB)
+ AST_LIBS+=$(UUID_LIB)
+ AST_LIBS+=$(CRYPT_LIB)
++AST_LIBS+=$(OPUS_LIB)
+ AST_LIBS+=$(AST_CLANG_BLOCKS_LIBS)
+
+ ifneq ($(findstring $(OSARCH), linux-gnu linux-gnux32 uclinux linux-uclibc kfreebsd-gnu),)
+@@ -160,6 +161,7 @@
+ bucket.o: _ASTCFLAGS+=$(URIPARSER_INCLUDE)
+ crypt.o: _ASTCFLAGS+=$(CRYPT_INCLUDE)
+ uuid.o: _ASTCFLAGS+=$(UUID_INCLUDE)
++codec_builtin.o: _ASTCFLAGS+=$(OPUS_INCLUDE)
+
+ ifneq ($(findstring ENABLE_UPLOADS,$(MENUSELECT_CFLAGS)),)
+ http.o: _ASTCFLAGS+=$(GMIME_INCLUDE)
+diff -dur asterisk-13.7.2.orig/main/Makefile.orig asterisk-13.7.2/main/Makefile.orig
+--- asterisk-13.7.2.orig/main/Makefile.orig 2016-02-05 21:32:40.000000000 +0100
++++ asterisk-13.7.2/main/Makefile.orig 2016-03-09 11:53:45.000000000 +0100
+@@ -42,7 +42,7 @@
+ AST_LIBS+=$(CRYPT_LIB)
+ AST_LIBS+=$(AST_CLANG_BLOCKS_LIBS)
+
+-ifneq ($(findstring $(OSARCH), linux-gnu uclinux linux-uclibc kfreebsd-gnu),)
++ifneq ($(findstring $(OSARCH), linux-gnu linux-gnux32 uclinux linux-uclibc kfreebsd-gnu),)
+ ifneq ($(findstring LOADABLE_MODULES,$(MENUSELECT_CFLAGS)),)
+ AST_LIBS+=-ldl
+ endif
%bcond_without odbc # build without ODBC support
%bcond_without radius # build without Radius support
%bcond_without pjsip # build without PJSIP stack
+%bcond_without opus_vp8 # build without Opus codec and VP8 passthrough
%bcond_without apidocs # disable apidocs building
%bcond_without verbose # verbose build
+%define opus_commit 058319d6ad464c79bbea71cf589883af62a18548
+
Summary: Asterisk PBX
Summary(pl.UTF-8): Centralka (PBX) Asterisk
Name: asterisk
Version: 13.7.2
-Release: 1
+Release: 2
License: GPL v2
Group: Applications/System
Source0: http://downloads.digium.com/pub/asterisk/releases/%{name}-%{version}.tar.gz
# menuselect.* -> make menuconfig; choose options; copy resulting files here
Source6: menuselect.makedeps
Source7: menuselect.makeopts
+# https://github.com/seanbright/asterisk-opus/
+Source8: https://github.com/seanbright/asterisk-opus/archive/%{opus_commit}/asterisk-opus-%{opus_commit}.tar.gz
+# Source8-md5: 2cc55d2036ee4b7e5a44ea5e2d7280f3
Patch0: lua51-path.patch
Patch1: %{name}-ppc.patch
Patch2: FHS-paths.patch
Patch5: %{name}-histedit.patch
Patch6: x32.patch
Patch7: %{name}-ilbc.patch
+Patch8: asterisk-opus.patch
URL: http://www.asterisk.org/
BuildRequires: OSPToolkit-devel >= 4.0.0
%{?with_oss:BuildRequires: SDL-devel}
Dokumentacja API Asteriska.
%prep
-%setup -q
+%setup -q -a 8
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch6 -p1
%patch7 -p1
+%if %{with opus_vp8}
+%patch8 -p1
+
+cp -a asterisk-opus-%{opus_commit}/codecs/* codecs
+cp -a asterisk-opus-%{opus_commit}/formats/* formats
+%endif
+
# Fixup makefile so sound archives aren't downloaded/installed
%{__sed} -i -e 's/^all:.*$/all:/' sounds/Makefile
%{__sed} -i -e 's/^install:.*$/install:/' sounds/Makefile
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_alaw.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_g722.so
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_g726.so
+%if %{with opus_vp8}
+%attr(755,root,root) %{_libdir}/asterisk/modules/codec_opus.so
+%endif
%attr(755,root,root) %{_libdir}/asterisk/modules/codec_ulaw.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_g719.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_g723.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_siren7.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_sln.so
%attr(755,root,root) %{_libdir}/asterisk/modules/format_vox.so
+%if %{with opus_vp8}
+%attr(755,root,root) %{_libdir}/asterisk/modules/format_vp8.so
+%endif
%attr(755,root,root) %{_libdir}/asterisk/modules/format_wav.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_aes.so
%attr(755,root,root) %{_libdir}/asterisk/modules/func_audiohookinherit.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_h264.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_opus.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_silk.so
+%if %{with opus_vp8}
+%attr(755,root,root) %{_libdir}/asterisk/modules/res_format_attr_vp8.so
+%endif
%attr(755,root,root) %{_libdir}/asterisk/modules/res_http_websocket.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_limit.so
%attr(755,root,root) %{_libdir}/asterisk/modules/res_manager_devicestate.so