gnu: linux-libre: Set CONFIG_DEVMEM=y
[jackhill/guix/guix.git] / gnu / packages / telephony.scm
CommitLineData
8fd3de0b 1;;; GNU Guix --- Functional package management for GNU
63af948f
AE
2;;; Copyright © 2014 John Darrington <jmd@gnu.org>
3;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
8fd3de0b
JD
4;;;
5;;; This file is part of GNU Guix.
6;;;
7;;; GNU Guix is free software; you can redistribute it and/or modify it
8;;; under the terms of the GNU General Public License as published by
9;;; the Free Software Foundation; either version 3 of the License, or (at
10;;; your option) any later version.
11;;;
12;;; GNU Guix is distributed in the hope that it will be useful, but
13;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;;; GNU General Public License for more details.
16;;;
17;;; You should have received a copy of the GNU General Public License
18;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
19
20(define-module (gnu packages telephony)
21 #:use-module (gnu packages)
22 #:use-module (gnu packages gnupg)
23 #:use-module (gnu packages pkg-config)
24 #:use-module (guix licenses)
25 #:use-module (guix packages)
26 #:use-module (guix download)
27 #:use-module (guix build-system gnu))
28
29(define-public commoncpp
30 (package
31 (name "commoncpp")
32 (version "1.8.1")
33 (source (origin
34 (method url-fetch)
35 (uri (string-append "mirror://gnu/" name "/commoncpp2-"
36 version ".tar.gz"))
37 (sha256 (base32
38 "0kmgr5w3b1qwzxnsnw94q6rqs0hr8nbv9clf07ca2a2fyypx9kjk"))))
39 (arguments
40 `(#:phases
41 (alist-cons-before
42 'configure 'pre-configure
43 (lambda _
44 (substitute* "src/applog.cpp"
45 (("^// TODO sc.*") "#include <sys/types.h>\n#include <sys/stat.h>\n")))
46 %standard-phases)))
47 (build-system gnu-build-system)
12bcf94a 48 (synopsis "(u)Common C++ framework for threaded applications")
8fd3de0b
JD
49 (description "GNU Common C++ is an portable, optimized class framework for
50threaded applications, supporting concurrent synchronization, inter-process
51communications via sockets, and various methods for data handling, such as
52serialization and XML parsing. It includes the uCommon C++ library, a smaller
53reimplementation.")
54 (license gpl2+) ; plus runtime exception
55 (home-page "http://www.gnu.org/software/commoncpp")))
56
57(define-public ucommon
58 (package
59 (name "ucommon")
aa30c6e7 60 (version "6.3.0")
8fd3de0b
JD
61 (source (origin
62 (method url-fetch)
63 (uri (string-append "mirror://gnu/commoncpp/" name "-"
64 version ".tar.gz"))
65 (sha256 (base32
aa30c6e7 66 "0l3s3vf8x3mhz85v23caf3p1xh0lirhl1xvbragapfcl1y4klmgv"))))
8fd3de0b 67 (build-system gnu-build-system)
35b9e423
EB
68 (synopsis "Common C++ framework for threaded applications")
69 (description "GNU uCommon C++ is meant as a very light-weight C++ library
70to facilitate using C++ design patterns even for very deeply embedded
71applications, such as for systems using uclibc along with posix threading
72support.")
8fd3de0b
JD
73 (license gpl2+) ; plus runtime exception
74 (home-page "http://www.gnu.org/software/commoncpp")))
75
76(define-public ccrtp
77 (package
78 (name "ccrtp")
9b4d1e73 79 (version "2.1.1")
8fd3de0b
JD
80 (source (origin
81 (method url-fetch)
82 (uri (string-append "mirror://gnu/ccrtp/ccrtp-"
83 version ".tar.gz"))
84 (sha256 (base32
9b4d1e73 85 "1p1pk2m7v75rdrh05rizpqcd5p08g3n541rw0kssyfzd805fb90d"))))
8fd3de0b
JD
86 (build-system gnu-build-system)
87 (inputs `(("ucommon" ,ucommon)
88 ("libgcrypt" ,libgcrypt)))
89 (native-inputs `(("pkg-config" ,pkg-config)))
90 (synopsis "Implementation of RTP (real-time transport protocol)")
91 (description "GNU ccRTP is an implementation of RTP, the real-time transport
92protocol from the IETF. It is suitable both for high capacity servers and
93personal client applications. It is flexible in its design, allowing it to
94function as a framework for the framework, rather than just being a
95packet-manipulation library.")
96 (license gpl2+) ; plus runtime exception
97 (home-page "http://www.gnu.org/software/ccrtp")))
98
99
100(define-public osip
101 (package
102 (name "osip")
103 (version "4.1.0")
104 (source (origin
105 (method url-fetch)
106 (uri (string-append "mirror://gnu/osip/libosip2-" version ".tar.gz"))
107 (sha256 (base32
108 "014503kqv7z63az6lgxr5fbajlrqylm5c4kgbf8p3a0n6cva0slr"))))
109 (build-system gnu-build-system)
110
111 (synopsis "Library implementing SIP (RFC-3261)")
112 (description "GNU oSIP is an implementation of the SIP protocol. It is
113used to provide multimedia and telecom software developers with an interface
114to initiate and control SIP sessions.")
115 (license lgpl2.1+)
116 (home-page "http://www.gnu.org/software/osip")))
117
118
119(define-public exosip
120 (package
121 (name "exosip")
122 (version "4.1.0")
123 (source (origin
124 (method url-fetch)
125 (uri (string-append
126 "http://download.savannah.gnu.org/releases/exosip/libeXosip2-"
127 version ".tar.gz"))
128 (sha256 (base32
129 "17cna8kpc8nk1si419vgr6r42k2lda0rdk50vlxrw8rzg0xp2xrw"))))
130 (build-system gnu-build-system)
131 (inputs `(("osip" ,osip)))
132 (synopsis "Sip abstraction library")
133 (description "EXosip is a library that hides the complexity of using the
35b9e423 134SIP protocol for mutlimedia session establishement. This protocol is mainly to
8fd3de0b
JD
135be used by VoIP telephony applications (endpoints or conference server) but
136might be also usefull for any application that wish to establish sessions like
137multiplayer games.")
138 (license gpl2+)
139 ;; (plus OpenSSL linking exception)
140 ;; http://git.savannah.gnu.org/cgit/exosip.git/plain/LICENSE.OpenSSL
141 (home-page "http://savannah.nongnu.org/projects/exosip")))
142
143(define-public sipwitch
144 (package
145 (name "sipwitch")
63af948f 146 (version "1.9.6")
8fd3de0b
JD
147 (source (origin
148 (method url-fetch)
149 (uri (string-append "mirror://gnu/sipwitch/sipwitch-"
150 version ".tar.gz"))
151 (sha256 (base32
63af948f 152 "04kfzcg12zn47y70gc5w5yi6jwgj1z2xyma2ljzz48lg1236qiqq"))))
8fd3de0b
JD
153 (build-system gnu-build-system)
154 ;; The configure.ac uses pkg-config but in a kludgy way which breaks when
155 ;; cross-compiling. Among other issues there the program name "pkg-config"
156 ;; is hard coded instead of respecting the PKG_CONFIG environment variable.
157 ;; Fortunately we can avoid the use of pkg-config and set the dependency
158 ;; flags ourselves.
159 (arguments `(#:configure-flags
160 `("--without-pkg-config"
161 ,(string-append "UCOMMON_CFLAGS=-I"
162 (assoc-ref %build-inputs "ucommon") "/include")
163 "UCOMMON_LIBS=-lusecure -lucommon -lrt -ldl -lpthread"
164 ,(string-append "LIBOSIP2_CFLAGS=-I"
165 (assoc-ref %build-inputs "osip") "/include")
166 "LIBOSIP2_LIBS=-losipparser2 -losip2"
167 ,(string-append "--sysconfdir=" (assoc-ref %outputs "out")
168 "/etc")
169 "EXOSIP2_LIBS=-leXosip2"
170 ,(string-append "EXOSIP2_CFLAGS=-I"
171 (assoc-ref %build-inputs "exosip")
172 "/include"))))
173 (inputs `(("ucommon" ,ucommon)
174 ("exosip" ,exosip)
175 ("osip" ,osip)))
176 (synopsis "Secure peer-to-peer VoIP server for the SIP protocol")
177 (description "GNU SIP Witch is a peer-to-peer Voice-over-IP server that
178uses the SIP protocol. Calls can be made from behind NAT firewalls and
179without the need for a service provider. Its peer-to-peer design ensures that
180there is no central point for media intercept or capture and thus it can be
181used to construct a secure telephone system that operates over the public
182internet.")
183 (license gpl3+)
184 (home-page "http://www.gnu.org/software/sipwitch")))
185