blob: 9d29d4cc02a683242b737110097149630cc9abcc [file] [log] [blame]
Adrien Béraud04d822c2015-04-02 17:44:36 -04001/*
2 * Copyright (C) 2004-2013 Savoir-Faire Linux Inc.
3 * Author: Emeric Vigier <emeric.vigier@savoirfairelinux.com>
4 * Alexandre Lision <alexnadre.L@savoirfairelinux.com>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 *
19 * Additional permission under GNU GPL version 3 section 7:
20 *
21 * If you modify this program, or any covered work, by linking or
22 * combining it with the OpenSSL project's OpenSSL library (or a
23 * modified version of that library), containing parts covered by the
24 * terms of the OpenSSL or SSLeay licenses, Savoir-Faire Linux Inc.
25 * grants you additional permission to convey the resulting work.
26 * Corresponding Source for a non-source form of such a combination
27 * shall include the source code for the parts of OpenSSL used as well
28 * as that of the covered work.
29 */
30
31%header %{
32
33#include "dring/dring.h"
Adrien Béraud7f97ca92015-06-07 15:36:06 -040034#include "dring/callmanager_interface.h"
Adrien Béraud04d822c2015-04-02 17:44:36 -040035
36class Callback {
37public:
38 virtual ~Callback() {}
Adrien Béraud7f97ca92015-06-07 15:36:06 -040039 virtual void callStateChanged(const std::string& call_id, const std::string& state, int detail_code){}
40 virtual void transferFailed(void){}
41 virtual void transferSucceeded(void){}
42 virtual void recordPlaybackStopped(const std::string& path){}
43 virtual void voiceMailNotify(const std::string& call_id, int nd_msg){}
44 virtual void incomingMessage(const std::string& id, const std::string& from, const std::string& msg){}
45 virtual void incomingCall(const std::string& account_id, const std::string& call_id, const std::string& from){}
46 virtual void recordPlaybackFilepath(const std::string& id, const std::string& filename){}
47 virtual void conferenceCreated(const std::string& conf_id){}
48 virtual void conferenceChanged(const std::string& conf_id, const std::string& state){}
49 virtual void conferenceRemoved(const std::string& conf_id){}
50 virtual void newCallCreated(const std::string& call_id, const std::string&, const std::string&){}
51 virtual void updatePlaybackScale(const std::string& filepath, int position, int scale){}
52 virtual void conferenceRemove(const std::string& conf_id){}
53 virtual void newCall(const std::string& account_id, const std::string& call_id, const std::string& to){}
54 virtual void sipCallStateChange(const std::string& call_id, const std::string& state, int code){}
55 virtual void recordingStateChanged(const std::string& call_id, int code){}
56 virtual void recordStateChange(const std::string& call_id, int state){}
57 virtual void secureSdesOn(const std::string& call_id){}
58 virtual void secureSdesOff(const std::string& call_id){}
59 virtual void secureZrtpOn(const std::string& call_id, const std::string& cipher){}
60 virtual void secureZrtpOff(const std::string& call_id){}
61 virtual void showSAS(const std::string& call_id, const std::string& sas, int verified){}
62 virtual void zrtpNotSuppOther(const std::string& call_id){}
63 virtual void zrtpNegotiationFailed(const std::string& call_id, const std::string& reason, const std::string& severity){}
64 virtual void onRtcpReportReceived(const std::string& call_id, const std::map<std::string, int>& stats){}
65 virtual void peerHold(const std::string& call_id, bool holding){}
Adrien Béraud04d822c2015-04-02 17:44:36 -040066};
67
68
69%}
70
71%feature("director") Callback;
72
Adrien Béraud7f97ca92015-06-07 15:36:06 -040073namespace DRing {
74
75/* Call related methods */
76std::string placeCall(const std::string& accountID, const std::string& to);
77
78bool refuse(const std::string& callID);
79bool accept(const std::string& callID);
80bool hangUp(const std::string& callID);
81bool hold(const std::string& callID);
82bool unhold(const std::string& callID);
83bool muteLocalMedia(const std::string& callid, const std::string& mediaType, bool mute);
84bool transfer(const std::string& callID, const std::string& to);
85bool attendedTransfer(const std::string& transferID, const std::string& targetID);
86std::map<std::string, std::string> getCallDetails(const std::string& callID);
87std::vector<std::string> getCallList();
88
89/* Conference related methods */
90void removeConference(const std::string& conference_id);
91bool joinParticipant(const std::string& sel_callID, const std::string& drag_callID);
92void createConfFromParticipantList(const std::vector<std::string>& participants);
93bool isConferenceParticipant(const std::string& call_id);
94bool addParticipant(const std::string& callID, const std::string& confID);
95bool addMainParticipant(const std::string& confID);
96bool detachParticipant(const std::string& callID);
97bool joinConference(const std::string& sel_confID, const std::string& drag_confID);
98bool hangUpConference(const std::string& confID);
99bool holdConference(const std::string& confID);
100bool unholdConference(const std::string& confID);
101std::vector<std::string> getConferenceList();
102std::vector<std::string> getParticipantList(const std::string& confID);
103std::vector<std::string> getDisplayNames(const std::string& confID);
104std::string getConferenceId(const std::string& callID);
105std::map<std::string, std::string> getConferenceDetails(const std::string& callID);
106
107/* File Playback methods */
108bool startRecordedFilePlayback(const std::string& filepath);
109void stopRecordedFilePlayback(const std::string& filepath);
110
111/* General audio methods */
112bool toggleRecording(const std::string& callID);
113/* DEPRECATED */
114void setRecording(const std::string& callID);
115
116void recordPlaybackSeek(double value);
117bool getIsRecording(const std::string& callID);
118std::string getCurrentAudioCodecName(const std::string& callID);
119void playDTMF(const std::string& key);
120void startTone(int32_t start, int32_t type);
121
122bool switchInput(const std::string& callID, const std::string& resource);
123
124/* Security related methods */
125void setSASVerified(const std::string& callID);
126void resetSASVerified(const std::string& callID);
127void setConfirmGoClear(const std::string& callID);
128void requestGoClear(const std::string& callID);
129void acceptEnrollment(const std::string& callID, bool accepted);
130
131/* Instant messaging */
132void sendTextMessage(const std::string& callID, const std::string& message);
133void sendTextMessage(const std::string& callID, const std::string& message, const std::string& from);
134
135}
Adrien Béraud04d822c2015-04-02 17:44:36 -0400136
137class Callback {
138public:
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400139 virtual ~Callback() {}
140 virtual void callStateChanged(const std::string& call_id, const std::string& state, int detail_code){}
141 virtual void transferFailed(void){}
142 virtual void transferSucceeded(void){}
143 virtual void recordPlaybackStopped(const std::string& path){}
144 virtual void voiceMailNotify(const std::string& call_id, int nd_msg){}
145 virtual void incomingMessage(const std::string& id, const std::string& from, const std::string& msg){}
146 virtual void incomingCall(const std::string& account_id, const std::string& call_id, const std::string& from){}
147 virtual void recordPlaybackFilepath(const std::string& id, const std::string& filename){}
148 virtual void conferenceCreated(const std::string& conf_id){}
149 virtual void conferenceChanged(const std::string& conf_id, const std::string& state){}
150 virtual void conferenceRemoved(const std::string& conf_id){}
151 virtual void newCallCreated(const std::string& call_id, const std::string&, const std::string&){}
152 virtual void updatePlaybackScale(const std::string& filepath, int position, int scale){}
153 virtual void conferenceRemove(const std::string& conf_id){}
154 virtual void newCall(const std::string& account_id, const std::string& call_id, const std::string& to){}
155 virtual void sipCallStateChange(const std::string& call_id, const std::string& state, int code){}
156 virtual void recordingStateChanged(const std::string& call_id, int code){}
157 virtual void recordStateChange(const std::string& call_id, int state){}
158 virtual void secureSdesOn(const std::string& call_id){}
159 virtual void secureSdesOff(const std::string& call_id){}
160 virtual void secureZrtpOn(const std::string& call_id, const std::string& cipher){}
161 virtual void secureZrtpOff(const std::string& call_id){}
162 virtual void showSAS(const std::string& call_id, const std::string& sas, int verified){}
163 virtual void zrtpNotSuppOther(const std::string& call_id){}
164 virtual void zrtpNegotiationFailed(const std::string& call_id, const std::string& reason, const std::string& severity){}
165 virtual void onRtcpReportReceived(const std::string& call_id, const std::map<std::string, int>& stats){}
166 virtual void peerHold(const std::string& call_id, bool holding){}
Adrien Béraud04d822c2015-04-02 17:44:36 -0400167};