blob: 8efe4e047af49b6cd3d3e970aa671e661d01ae6e [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){}
Adrien Béraud75540ff2015-10-04 22:58:37 -040044 virtual void incomingMessage(const std::string& id, const std::string& from, const std::map<std::string, std::string>& messages){}
Adrien Béraud7f97ca92015-06-07 15:36:06 -040045 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 */
Adrien Béraud75540ff2015-10-04 22:58:37 -0400132void sendTextMessage(const std::string& callID, const std::map<std::string, std::string>& messages, const std::string& from, const bool& isMixed);
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400133
134}
Adrien Béraud04d822c2015-04-02 17:44:36 -0400135
136class Callback {
137public:
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400138 virtual ~Callback() {}
139 virtual void callStateChanged(const std::string& call_id, const std::string& state, int detail_code){}
140 virtual void transferFailed(void){}
141 virtual void transferSucceeded(void){}
142 virtual void recordPlaybackStopped(const std::string& path){}
143 virtual void voiceMailNotify(const std::string& call_id, int nd_msg){}
Adrien Béraud75540ff2015-10-04 22:58:37 -0400144 virtual void incomingMessage(const std::string& id, const std::string& from, const std::map<std::string, std::string>& messages){}
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400145 virtual void incomingCall(const std::string& account_id, const std::string& call_id, const std::string& from){}
146 virtual void recordPlaybackFilepath(const std::string& id, const std::string& filename){}
147 virtual void conferenceCreated(const std::string& conf_id){}
148 virtual void conferenceChanged(const std::string& conf_id, const std::string& state){}
149 virtual void conferenceRemoved(const std::string& conf_id){}
150 virtual void newCallCreated(const std::string& call_id, const std::string&, const std::string&){}
151 virtual void updatePlaybackScale(const std::string& filepath, int position, int scale){}
152 virtual void conferenceRemove(const std::string& conf_id){}
153 virtual void newCall(const std::string& account_id, const std::string& call_id, const std::string& to){}
154 virtual void sipCallStateChange(const std::string& call_id, const std::string& state, int code){}
155 virtual void recordingStateChanged(const std::string& call_id, int code){}
156 virtual void recordStateChange(const std::string& call_id, int state){}
157 virtual void secureSdesOn(const std::string& call_id){}
158 virtual void secureSdesOff(const std::string& call_id){}
159 virtual void secureZrtpOn(const std::string& call_id, const std::string& cipher){}
160 virtual void secureZrtpOff(const std::string& call_id){}
161 virtual void showSAS(const std::string& call_id, const std::string& sas, int verified){}
162 virtual void zrtpNotSuppOther(const std::string& call_id){}
163 virtual void zrtpNegotiationFailed(const std::string& call_id, const std::string& reason, const std::string& severity){}
164 virtual void onRtcpReportReceived(const std::string& call_id, const std::map<std::string, int>& stats){}
165 virtual void peerHold(const std::string& call_id, bool holding){}
Adrien Béraud04d822c2015-04-02 17:44:36 -0400166};