purple: add D-Bus API SipeCallPhoneNumber
[siplcs.git] / README
blob0a04590abdeb36d002454762b26a53d0165fb803
1 Introduction
2 ============
4 SIPE is a third-party plugin for the Pidgin/Adium/Miranda/Telepathy
5 multi-protocol instant messaging clients/frameworks. It implements the
6 extended version of SIP/SIMPLE used by various products:
8     * Skype for Business
9     * Microsoft Office 365
10     * Microsoft Business Productivity Online Suite (BPOS)
11     * Microsoft Lync Server
12     * Microsoft Office Communications Server (OCS 2007/2007 R2)
13     * Microsoft Live Communications Server (LCS 2003/2005)
15 With this plugin you should be able to replace your Microsoft Office
16 Communicator client with Pidgin/Adium/Miranda/Telepathy.
19 Features
20 ========
22 The plugin has support for
24     * Instant Messaging (IM)
25     * Multiparty chat (OCS 2005) or conference (OCS 2007+)
26     * Group chat (Lync 2010) or Persistent chat (Lync 2013) - [MS-XCCOSIP]
27     * Enhanced presence
28     * Calendar integration with Exchange 2007+ (can be disabled)
29     * Contact details information - company, phones, photo, web site, etc.
30     * Unified Contact Store (Lync 2013) - [MS-OXWSCOS]
31     * Contact search - [MS-PRES] and [MS-DLX] methods supported
32     * Encrypted file transfer (OCS2007: send & receive, Lync: receive only)
33     * Voice & Video calls
34     * Call initiation through PBX
35     * NTLMv2, Kerberos & TLS-DSK authentication methods
36     * Single Sign-On (depends on OS and authentication method)
37     * Automatic SSL/TLS protection for SIP/HTTP connections
38     * Crypto implementation using NSS or OpenSSL
39     * Localization
41 The plugin has backends for
43     * Pidgin/Finch (libpurple)
44     * Adium (libpurple)
45     * Miranda
46     * Telepathy (under development)
49 Advantages over Office Communicator products
50 ============================================
52     * Available on broader range of platforms: Linux, *BSD, Maemo, OSX,
53       commercial UNIX, Windows.
54     * Ability to simultaneously connect to several Office Communicator
55       accounts in addition to public IM network accounts like MSN, AOL,
56       Yahoo. For example one account is in vendor company and another is
57       in client company.
58     * Keeps history of communications in environments without Outlook. For
59       example in companies where Lotus Notes is deployed as a default
60       groupware client instead of Outlook.
61     * Lotus Notes/Domino calendar integration. Unique to SIPE.
62     * Open development model, open source product. License is GPLv2+
65 Support
66 =======
68 The Pidgin or Adium projects do not support third-party plugins! Please do
69 not ask questions about SIPE in their forums or report SIPE problems to their
70 bug trackers.
72 If you set up your Office Communicator/Lync account with SIPE for the first
73 time then please make sure to read this page:
75     https://sourceforge.net/p/sipe/wiki/How%20to%20setup%20an%20account/
77 If you encounter problems then please make sure to check out the Frequently
78 Asked Question page:
80     https://sourceforge.net/p/sipe/wiki/faq/
82 If you still have problems then please check the support forum if another
83 user encountered the same problem and maybe solved it already:
85     http://sourceforge.net/p/sipe/discussion/
87 If you think that you have found a bug in SIPE then please report it to the
88 SIPE bug tracker:
90     https://sourceforge.net/p/sipe/bugs/
92 The SIPE project kindly requests that you do not ignore the instructions that
93 appear at the head of the "Create Ticket" page. These instructions are there
94 for a reason and if you ignore them then you will only cause unnecessary work
95 for the project and yourself. Please do not report missing features as bugs.
97 New or missing features can be requested here:
99     https://sourceforge.net/p/sipe/feature-requests/
102 Localization
103 ============
105 SIPE has already been localized for several languages. You can help to
106 translate SIPE to your native language at Transifex:
108     https://www.transifex.com/stefanb/pidgin-sipe/
110 The service offers a convenient web editor.
113 D-Bus support (libpurple backend only)
114 ======================================
116 If libpurple and SIPE have been compiled with D-Bus support and the D-Bus
117 backend has been successfully initialized at libpurple start, then SIPE
118 extends the libpurple D-Bus interface with the following APIs:
120     Function                                         | Description
121     --------------------------------------------------------------------------
122     SipeCallPhoneNumber(aId, number)                 | Same as "Call a phone
123                                                      | number" menu
124     SipeJoinConferenceWithOrganizerAndId(aId, o, id) | Same as "Org. email"
125                                                      | and "Meeting ID" in the
126                                                      | dialog opened by "Join
127                                                      | scheduled confernce..."
128     SipeJoinConferenceWithUri(aId, uri)              | Same as "Meeting loc."
129                                                      | in the dialog opened by
130                                                      | "Join scheduled conf..."
132 To use the APIs from a script you'll need a D-Bus object for the libpurple
133 interface and a valid & connected account ID as first parameter. An invalid
134 account ID will cause SIPE to silently ignore the D-Bus invocation.
136 Example script code (without error checks to keep it simple):
138 Perl:
140     use Net::DBus;
141     my $bus       = Net::DBus->session;
142     my $service   = $bus->get_service('im.pidgin.purple.PurpleService');
143     my $purple    = $service->get_object('/im/pidgin/purple/PurpleObject',
144                                          'im.pidgin.purple.PurpleInterface');
145     my $accountId = $purple->PurpleAccountsFind($accountName, 'prpl-sipe');
146     $purple->SipeXYZ($accountId, parameters... );
148 Python:
150     import dbus
151     bus       = dbus.SessionBus()
152     object    = bus.get_object("im.pidgin.purple.PurpleService",
153                                "/im/pidgin/purple/PurpleObject")
154     purple    = dbus.Interface(object, "im.pidgin.purple.PurpleInterface")
155     accountId = purple.PurpleAccountsFind($accountName, 'prpl-sipe')
156     purple.SipeXYZ(accountId, parameters... );
159 Installing from a distribution repository
160 =========================================
162 Many Open Source OS distributions have a ready-made package "pidgin-sipe".
163 Before trying to compile it from the source code yourself you should try
164 to install this package with the standard installation method provided by
165 your OS.
167 Once you have SIPE installed and are connected to your account you can check
168 from the following Pidgin menu
170         Accounts -> <SIPE Account> -> About SIPE plugin...
172 which optional features have been enabled in your SIPE build.
175 Do It Yourself I: compiling against "pidgin" package
176 ====================================================
178 NOTE: for instructions how to setup a build environment on Windows to
179       compile the Windows Pidgin plugin, please read:
181         https://developer.pidgin.im/wiki/BuildingWinPidgin
183 NOTE: for instructions how to cross-compile the Windows Pidgin plugin on
184       Linux, please read:
186         contrib/mingw-cross-compile/README.txt
188 NOTE: for instructions how to compile the SIPEAdiumPlugin on Mac OS X,
189       please read:
191         src/adium/README.adium
194 If you already have installed the "pidgin" package from your distribution
195 repository and want compile SIPE from source code yourself, then you need to
196 install the necessary headers first. Depending on your distribution you'll
197 need to install one of the following packages
199         libpurple-dev
200         libpurple-devel
202 For the compilation you'll need to install a C compiler and some of the
203 following packages
205         libtool
206         intltool
208         pkg-config
209         libglib2.0-dev
210         libxml2-dev
211         libgmime-2.4-dev  (optional)
212         libgmime-2.6-dev  (optional)
214         pkgconfig
215         libglib2-devel
216         libxml2-devel
217         gettext-devel
218         gmime-devel       (optional)
220 You have to choose between NSS or OpenSSL for the crypto backend. You'll
221 need one of the following packages
223         for NSS:
224         libnss3-dev
225         nss-devel
226         mozilla-nss-devel
228         for OpenSSL:
229         libssl-dev
230         openssl-devel
232 If you want to enable Kerberos authentication support then you'll need one
233 of the following packages
235         libkrb5-dev
236         krb5-devel
238 If you additionally want to disable the internal NTLM implementation and
239 authenticate with NTLM via GSSAPI then you'll need one of the following
240 packages
242         gssntlmssp-devel
244 If you want to enable the D-Bus support then you'll need one of the
245 following packages
247         libdbus-1-dev
248         dbus-devel
250 If you want to enable Voice & Video features then you'll need some of the
251 following packages. You need to install the same version of the GStreamer
252 development packages which where used to compile Pidgin!
254         libnice-dev                 (>= 0.1.0)
255         libgstreamer0.10-dev
256 or      libgstreamer1.0-dev
257         for encryption support (at compile time):
258         libpurple-dev               (>= 2.10.12)
259         libnice-dev                 (>= 0.1.13)
260         libgstreamer1.0-dev
261         for encryption support (at run time):
262         libfarstream-0.2
263         gstreamer1.0-plugins-bad
265         libnice-devel               (>= 0.1.0)
266         gstreamer-devel
267 or      gstreamer1-devel
268         for encryption support (at compile time):
269         libpurple-devel             (>= 2.10.12)
270         libnice-devel               (>= 0.1.13)
271         gstreamer1-devel
272         for encryption support (at run time):
273         farstream02
274         gstreamer1-plugins-bad-free
276 Now you should be able to compile the source code with
278         ./configure --prefix=/usr
279         make
281 If you get errors then you are missing some required package. After
282 successful compilation you can install SIPE with:
284         su -c "make install"
286 If you get errors from configure or libtool about version conflicts then
287 you need to regenerate the autoconf files. You'll need these additional
288 packages
290         autoconf
291         automake
293 Now you should be able to regenerate the files with
295         autoreconf --verbose --install --force
297 After that go back to the configure step above.
300 Do It Yourself II: compiling against self-compiled pidgin
301 =========================================================
303 If you have compiled pidgin from source code yourself then you'll have to
304 specify the correct installation path in configure. Usually pidgin is
305 installed in /usr/local so the following command should work
307         ./configure --prefix=/usr/local
309 The rest of the steps are the same as in the previous section.