blob: e8b92e2bba97999a246aa8706eceddbd0853b7c0 [file] [log] [blame]
Adrien Béraud04d822c2015-04-02 17:44:36 -04001/*
Adrien Béraudec528bb2016-01-14 16:52:51 -05002 * Copyright (C) 2004-2016 Savoir-faire Linux Inc.
3 *
Adrien Béraud04d822c2015-04-02 17:44:36 -04004 * Author: Emeric Vigier <emeric.vigier@savoirfairelinux.com>
5 * Alexandre Lision <alexnadre.L@savoirfairelinux.com>
Adrien Béraudec528bb2016-01-14 16:52:51 -05006 * Adrien Béraud <adrien.beraud@savoirfairelinux.com>
7 *
Adrien Béraud04d822c2015-04-02 17:44:36 -04008 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 3 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but 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 this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Adrien Béraud04d822c2015-04-02 17:44:36 -040021 */
22
23%header %{
24
25#include "dring/dring.h"
Adrien Béraud7f97ca92015-06-07 15:36:06 -040026#include "dring/callmanager_interface.h"
Adrien Béraud04d822c2015-04-02 17:44:36 -040027
28class Callback {
29public:
30 virtual ~Callback() {}
Adrien Béraud7f97ca92015-06-07 15:36:06 -040031 virtual void callStateChanged(const std::string& call_id, const std::string& state, int detail_code){}
32 virtual void transferFailed(void){}
33 virtual void transferSucceeded(void){}
34 virtual void recordPlaybackStopped(const std::string& path){}
35 virtual void voiceMailNotify(const std::string& call_id, int nd_msg){}
Adrien Béraud75540ff2015-10-04 22:58:37 -040036 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 -040037 virtual void incomingCall(const std::string& account_id, const std::string& call_id, const std::string& from){}
38 virtual void recordPlaybackFilepath(const std::string& id, const std::string& filename){}
39 virtual void conferenceCreated(const std::string& conf_id){}
40 virtual void conferenceChanged(const std::string& conf_id, const std::string& state){}
41 virtual void conferenceRemoved(const std::string& conf_id){}
42 virtual void newCallCreated(const std::string& call_id, const std::string&, const std::string&){}
43 virtual void updatePlaybackScale(const std::string& filepath, int position, int scale){}
44 virtual void conferenceRemove(const std::string& conf_id){}
45 virtual void newCall(const std::string& account_id, const std::string& call_id, const std::string& to){}
46 virtual void sipCallStateChange(const std::string& call_id, const std::string& state, int code){}
47 virtual void recordingStateChanged(const std::string& call_id, int code){}
48 virtual void recordStateChange(const std::string& call_id, int state){}
49 virtual void secureSdesOn(const std::string& call_id){}
50 virtual void secureSdesOff(const std::string& call_id){}
51 virtual void secureZrtpOn(const std::string& call_id, const std::string& cipher){}
52 virtual void secureZrtpOff(const std::string& call_id){}
53 virtual void showSAS(const std::string& call_id, const std::string& sas, int verified){}
54 virtual void zrtpNotSuppOther(const std::string& call_id){}
55 virtual void zrtpNegotiationFailed(const std::string& call_id, const std::string& reason, const std::string& severity){}
56 virtual void onRtcpReportReceived(const std::string& call_id, const std::map<std::string, int>& stats){}
57 virtual void peerHold(const std::string& call_id, bool holding){}
Adrien Béraud04d822c2015-04-02 17:44:36 -040058};
59
60
61%}
62
63%feature("director") Callback;
64
Adrien Béraud7f97ca92015-06-07 15:36:06 -040065namespace DRing {
66
67/* Call related methods */
68std::string placeCall(const std::string& accountID, const std::string& to);
69
70bool refuse(const std::string& callID);
71bool accept(const std::string& callID);
72bool hangUp(const std::string& callID);
73bool hold(const std::string& callID);
74bool unhold(const std::string& callID);
75bool muteLocalMedia(const std::string& callid, const std::string& mediaType, bool mute);
76bool transfer(const std::string& callID, const std::string& to);
77bool attendedTransfer(const std::string& transferID, const std::string& targetID);
78std::map<std::string, std::string> getCallDetails(const std::string& callID);
79std::vector<std::string> getCallList();
80
81/* Conference related methods */
82void removeConference(const std::string& conference_id);
83bool joinParticipant(const std::string& sel_callID, const std::string& drag_callID);
84void createConfFromParticipantList(const std::vector<std::string>& participants);
85bool isConferenceParticipant(const std::string& call_id);
86bool addParticipant(const std::string& callID, const std::string& confID);
87bool addMainParticipant(const std::string& confID);
88bool detachParticipant(const std::string& callID);
89bool joinConference(const std::string& sel_confID, const std::string& drag_confID);
90bool hangUpConference(const std::string& confID);
91bool holdConference(const std::string& confID);
92bool unholdConference(const std::string& confID);
93std::vector<std::string> getConferenceList();
94std::vector<std::string> getParticipantList(const std::string& confID);
95std::vector<std::string> getDisplayNames(const std::string& confID);
96std::string getConferenceId(const std::string& callID);
97std::map<std::string, std::string> getConferenceDetails(const std::string& callID);
98
99/* File Playback methods */
100bool startRecordedFilePlayback(const std::string& filepath);
101void stopRecordedFilePlayback(const std::string& filepath);
102
103/* General audio methods */
104bool toggleRecording(const std::string& callID);
105/* DEPRECATED */
106void setRecording(const std::string& callID);
107
108void recordPlaybackSeek(double value);
109bool getIsRecording(const std::string& callID);
110std::string getCurrentAudioCodecName(const std::string& callID);
111void playDTMF(const std::string& key);
112void startTone(int32_t start, int32_t type);
113
114bool switchInput(const std::string& callID, const std::string& resource);
115
116/* Security related methods */
117void setSASVerified(const std::string& callID);
118void resetSASVerified(const std::string& callID);
119void setConfirmGoClear(const std::string& callID);
120void requestGoClear(const std::string& callID);
121void acceptEnrollment(const std::string& callID, bool accepted);
122
123/* Instant messaging */
Adrien Béraud75540ff2015-10-04 22:58:37 -0400124void 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 -0400125
126}
Adrien Béraud04d822c2015-04-02 17:44:36 -0400127
128class Callback {
129public:
Adrien Béraud7f97ca92015-06-07 15:36:06 -0400130 virtual ~Callback() {}
131 virtual void callStateChanged(const std::string& call_id, const std::string& state, int detail_code){}
132 virtual void transferFailed(void){}
133 virtual void transferSucceeded(void){}
134 virtual void recordPlaybackStopped(const std::string& path){}
135 virtual void voiceMailNotify(const std::string& call_id, int nd_msg){}
Adrien Béraud75540ff2015-10-04 22:58:37 -0400136 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 -0400137 virtual void incomingCall(const std::string& account_id, const std::string& call_id, const std::string& from){}
138 virtual void recordPlaybackFilepath(const std::string& id, const std::string& filename){}
139 virtual void conferenceCreated(const std::string& conf_id){}
140 virtual void conferenceChanged(const std::string& conf_id, const std::string& state){}
141 virtual void conferenceRemoved(const std::string& conf_id){}
142 virtual void newCallCreated(const std::string& call_id, const std::string&, const std::string&){}
143 virtual void updatePlaybackScale(const std::string& filepath, int position, int scale){}
144 virtual void conferenceRemove(const std::string& conf_id){}
145 virtual void newCall(const std::string& account_id, const std::string& call_id, const std::string& to){}
146 virtual void sipCallStateChange(const std::string& call_id, const std::string& state, int code){}
147 virtual void recordingStateChanged(const std::string& call_id, int code){}
148 virtual void recordStateChange(const std::string& call_id, int state){}
149 virtual void secureSdesOn(const std::string& call_id){}
150 virtual void secureSdesOff(const std::string& call_id){}
151 virtual void secureZrtpOn(const std::string& call_id, const std::string& cipher){}
152 virtual void secureZrtpOff(const std::string& call_id){}
153 virtual void showSAS(const std::string& call_id, const std::string& sas, int verified){}
154 virtual void zrtpNotSuppOther(const std::string& call_id){}
155 virtual void zrtpNegotiationFailed(const std::string& call_id, const std::string& reason, const std::string& severity){}
156 virtual void onRtcpReportReceived(const std::string& call_id, const std::map<std::string, int>& stats){}
157 virtual void peerHold(const std::string& call_id, bool holding){}
Adrien Béraud04d822c2015-04-02 17:44:36 -0400158};