summary refs log tree commit diff
path: root/gnu/packages/telephony.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/telephony.scm')
-rw-r--r--gnu/packages/telephony.scm147
1 files changed, 100 insertions, 47 deletions
diff --git a/gnu/packages/telephony.scm b/gnu/packages/telephony.scm
index fd8ec3f7a9..5e43061b3e 100644
--- a/gnu/packages/telephony.scm
+++ b/gnu/packages/telephony.scm
@@ -16,6 +16,9 @@
 ;;; Copyright © 2019 Ivan Vilata i Balaguer <ivan@selidor.net>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
+;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -34,7 +37,9 @@
 
 (define-module (gnu packages telephony)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages aidc)
+  #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages audio)
@@ -43,6 +48,7 @@
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crypto)
+  #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages file)
   #:use-module (gnu packages protobuf)
@@ -52,10 +58,12 @@
   #:use-module (gnu packages gnome)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages libcanberra)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages netpbm)
   #:use-module (gnu packages networking)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages perl)
@@ -83,6 +91,97 @@
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system qt))
 
+(define-public spandsp
+  (package
+    (name "spandsp")
+    (version "0.0.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        ;; The original upstream has been down since the end of March 2020.
+        (string-append "https://web.archive.org/web/20180626203108/"
+                       "https://www.soft-switch.org/downloads/" name "/"
+                       name "-" version ".tar.gz"))
+       (sha256
+        (base32 "0rclrkyspzk575v8fslzjpgp4y2s4x7xk3r55ycvpi4agv33l1fc"))))
+    (build-system gnu-build-system)
+    (outputs '("out" "doc" "static"))   ;doc contains HTML documentation
+    (arguments
+     `(#:configure-flags '("--enable-doc=yes" "--enable-tests=yes")
+       #:parallel-build? #f ;non-deterministic build failures may occur otherwise
+       #:parallel-tests? #f ;fails removing the same the files twice otherwise
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'patch-configure.ac
+                    (lambda _
+                      ;; spandsp looks at hard coded locations of the FHS to
+                      ;; find libxml2.
+                      (substitute* "configure.ac"
+                        (("AC_MSG_CHECKING\\(for libxml/xmlmemory\\.h.*" all)
+                         (string-append all
+                                        "PKG_CHECK_MODULES(XML2, libxml-2.0)\n"
+                                        "CPPFLAGS+=\" $XML2_CFLAGS\"\n")))
+                      ;; Force a regeneration of the autotools build system.
+                      (delete-file "autogen.sh")
+                      (delete-file "configure")
+                      #t))
+                  (add-after 'unpack 'do-not-install-data-files
+                    ;; The .tiff images produced for tests are not
+                    ;; reproducible and it is not desirable to have those
+                    ;; distributed.
+                    (lambda _
+                      (substitute* '("test-data/itu/fax/Makefile.am"
+                                     "test-data/etsi/fax/Makefile.am")
+                        (("nobase_data_DATA")
+                         "noinst_DATA"))
+                      #t))
+                  (add-after 'install 'install-doc
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((doc (string-append (assoc-ref outputs "doc")
+                                                "/share/doc/" ,name "-" ,version)))
+                        (copy-recursively "doc/t38_manual" doc)
+                        #t)))
+                  (add-after 'install 'move-static-libraries
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out (assoc-ref outputs "out"))
+                            (static (assoc-ref outputs "static")))
+                        (mkdir-p (string-append static "/lib"))
+                        (with-directory-excursion out
+                          (for-each (lambda (file)
+                                      (rename-file file
+                                                   (string-append static "/"
+                                                                  file)))
+                                    (find-files "lib" "\\.a$")))
+                        #t))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ;; For the tests
+       ("fftw" ,fftw)
+       ("libpcap" ,libpcap)
+       ("libsndfile" ,libsndfile)
+       ("libtiff" ,libtiff)
+       ("netpbm" ,netpbm)
+       ("sox" ,sox)
+       ;; For the documentation
+       ("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
+       ("doxygen" ,doxygen)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)))
+    (synopsis "DSP library for telephony")
+    (description "SpanDSP is a library of DSP functions for telephony, in the
+8000 sample per second world of E1s, T1s, and higher order PCM channels.  It
+contains low level functions, such as basic filters.  It also contains higher
+level functions, such as cadenced supervisory tone detection, and a complete
+software FAX machine.")
+    (home-page "https://web.archive.org/web/20180626203108/\
+https://www.soft-switch.org/index.html")
+    (license (list license:lgpl2.1+  ;for the library
+                   license:gpl2+)))) ;for the test suites and support programs
+
 (define-public commoncpp
   (package
    (name "commoncpp")
@@ -282,52 +381,6 @@ supporting cryptographic kernel.")
     (home-page "https://github.com/cisco/libsrtp")
     (license license:bsd-3)))
 
-(define-public bctoolbox
-  (package
-    (name "bctoolbox")
-    (version "0.2.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://savannah/linphone/bctoolbox/bctoolbox-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "14ivv6bh6qywys6yyb34scy9w78d636xl1f7cyxm3gwx2qv71lx5"))))
-    (build-system gnu-build-system)
-    (arguments '(#:make-flags '("CFLAGS=-fPIC")))
-    (native-inputs
-     `(("cunit" ,cunit)))
-    (inputs
-     `(("mbedtls" ,mbedtls-apache)))
-    (home-page "https://www.linphone.org")
-    (synopsis "Utilities library for linphone software")
-    (description "BCtoolbox is a utilities library used by Belledonne
-Communications software like linphone.")
-    (license license:gpl2+)))
-
-(define-public ortp
-  (package
-    (name "ortp")
-    (version "0.27.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://download.savannah.nongnu.org/"
-                                  "releases/linphone/ortp/sources/ortp-"
-                                  version ".tar.gz"))
-              (sha256
-               (base32
-                "1by0dqdqrj5avzcvjws30g8v5sa61wj12x00sxw0kn1smcrshqgb"))))
-    (build-system gnu-build-system)
-    (inputs
-     `(("bctoolbox" ,bctoolbox)))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (home-page "https://linphone.org/")
-    (synopsis "Implementation of the Real-time transport protocol")
-    (description "oRTP is a library implementing the Real-time transport
-protocol (RFC 3550).")
-    (license license:lgpl2.1+)))
-
 (define-public libiax2
   (let ((commit "0e5980f1d78ce462e2d1ed6bc39ff35c8341f201"))
     ;; This is the commit used by the Ring Project.
@@ -916,11 +969,11 @@ This package provides a library common to all Jami clients.")
        ("libnotify" ,libnotify)
        ("clutter" ,clutter)
        ("clutter-gtk" ,clutter-gtk)
-       ("gettext" ,gnu-gettext)
        ("libcanberra" ,libcanberra)
        ("webkitgtk" ,webkitgtk)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
        ("doxygen" ,doxygen)))
     (propagated-inputs