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