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