blob: c1718d31fefda976d2260ac15b52b0cffdca6b08 [file] [log] [blame]
Alexandre Lision064e1e02013-10-01 16:18:42 -04001package org.sflphone.service;
Emeric Vigier6119d782012-09-21 18:04:14 -04002
Alexandre Lision064e1e02013-10-01 16:18:42 -04003import org.sflphone.model.SipCall;
4import org.sflphone.model.Conference;
Alexandre Lisiond5686032013-10-29 11:09:21 -04005import org.sflphone.model.SipMessage;
alision5f899632013-04-22 17:26:56 -04006
Emeric Vigier6119d782012-09-21 18:04:14 -04007interface ISipService {
Alexandre Lision6711ab22013-09-16 15:15:38 -04008
9 Map getCallDetails(in String callID);
alisionfde875f2013-05-28 17:01:54 -040010 void placeCall(in SipCall call);
Emeric Vigier6119d782012-09-21 18:04:14 -040011 void refuse(in String callID);
12 void accept(in String callID);
13 void hangUp(in String callID);
Alexandre Savarde9dc8992012-10-26 12:12:27 -040014 void hold(in String callID);
15 void unhold(in String callID);
alision7f18fc82013-05-01 09:37:33 -040016
Alexandre Savard6b85e7e2012-09-27 15:43:14 -040017 List getAccountList();
Alexandre Savard46036572012-10-05 13:56:49 -040018 String addAccount(in Map accountDetails);
19 void removeAccount(in String accoundId);
Alexandre Lision4cf78702013-10-16 13:43:23 -040020 void setAccountOrder(in String order);
Alexandre Savard713a34d2012-09-26 15:50:41 -040021 Map getAccountDetails(in String accountID);
Alexandre Lision451f2a82013-11-12 12:55:55 -050022 Map getAccountTemplate();
Alexandre Lision3e2a1d02013-11-19 17:23:00 -050023 void registerAllAccounts();
Alexandre Savard8b7d4332012-09-30 20:02:11 -040024 void setAccountDetails(in String accountId, in Map accountDetails);
Alexandre Lision3b7148e2013-11-13 17:23:06 -050025 List getCredentials(in String accountID);
26 void setCredentials(in String accountID, in List creds);
Alexandre Savard6b85e7e2012-09-27 15:43:14 -040027 void setAudioPlugin(in String callID);
Alexandre Savard31d27c62012-10-04 16:05:08 -040028 String getCurrentAudioOutputPlugin();
alisiond295ec22013-05-17 10:12:13 -040029 List getAudioCodecList(in String accountID);
Alexandre Lision4fb22622013-10-21 16:26:33 -040030 String getCurrentAudioCodecName(in String callID);
Alexandre Lision4cf78702013-10-16 13:43:23 -040031 void setActiveCodecList(in List codecs, in String accountID);
Alexandre Lisionafd40e42013-10-15 13:48:37 -040032 Map getRingtoneList();
alision04a00182013-05-10 17:05:29 -040033
Alexandre Lision5f733bc2013-12-04 13:10:30 -050034
35 // FIXME
Alexandre Lision35577132013-12-06 15:21:15 -050036 void toggleSpeakerPhone(in boolean toggle);
Alexandre Lision5f733bc2013-12-04 13:10:30 -050037
alision04a00182013-05-10 17:05:29 -040038 /* History */
alisione2a38e12013-04-25 14:20:20 -040039 List getHistory();
alision7f18fc82013-05-01 09:37:33 -040040
alision2cb99562013-05-30 17:02:20 -040041 /* Notification */
42 void createNotification();
43 void destroyNotification();
44
45
alision04a00182013-05-10 17:05:29 -040046 /* Recording */
47 void setRecordPath(in String path);
48 String getRecordPath();
Alexandre Lisiona764c682013-09-09 10:02:07 -040049 boolean toggleRecordingCall(in String id);
alision50fa0722013-06-25 17:29:44 -040050 boolean startRecordedFilePlayback(in String filepath);
51 void stopRecordedFilePlayback(in String filepath);
Alexandre Lision64dc8c02013-09-25 15:32:25 -040052
Alexandre Lision31e30902013-11-08 15:16:59 -050053 /* Mute */
54 void setMuted(boolean mute);
55 boolean isCaptureMuted();
56
57
Alexandre Lision64dc8c02013-09-25 15:32:25 -040058 /* DTMF */
59 void playDtmf(in String key);
alision04a00182013-05-10 17:05:29 -040060
61 /* IM */
Alexandre Lisiond5686032013-10-29 11:09:21 -040062 void sendTextMessage(in String callID, in SipMessage message);
alision84813a12013-05-27 17:40:39 -040063
alision7f18fc82013-05-01 09:37:33 -040064 void transfer(in String callID, in String to);
65 void attendedTransfer(in String transferID, in String targetID);
66
alision43a9b362013-05-01 16:30:15 -040067 /* Conference related methods */
alision907bde72013-06-20 14:40:37 -040068
alision43a9b362013-05-01 16:30:15 -040069 void removeConference(in String confID);
alision7f18fc82013-05-01 09:37:33 -040070 void joinParticipant(in String sel_callID, in String drag_callID);
alision907bde72013-06-20 14:40:37 -040071
alision806e18e2013-06-21 15:30:17 -040072 void addParticipant(in SipCall call, in String confID);
alision7f18fc82013-05-01 09:37:33 -040073 void addMainParticipant(in String confID);
74 void detachParticipant(in String callID);
75 void joinConference(in String sel_confID, in String drag_confID);
76 void hangUpConference(in String confID);
77 void holdConference(in String confID);
78 void unholdConference(in String confID);
alisioncd8fb912013-06-28 14:43:51 -040079 boolean isConferenceParticipant(in String callID);
alisiondf1dac92013-06-27 17:35:53 -040080 Map getConferenceList();
alisionfde875f2013-05-28 17:01:54 -040081 Map getCallList();
alision7f18fc82013-05-01 09:37:33 -040082 List getParticipantList(in String confID);
83 String getConferenceId(in String callID);
alision806e18e2013-06-21 15:30:17 -040084 String getConferenceDetails(in String callID);
alision85704182013-05-29 15:23:03 -040085
alisiondf1dac92013-06-27 17:35:53 -040086 Conference getCurrentCall();
Alexandre Lision6ae652d2013-09-26 16:39:20 -040087 List getConcurrentCalls();
alisiondf1dac92013-06-27 17:35:53 -040088
alision85704182013-05-29 15:23:03 -040089
90 /* */
91
92 SipCall getCall(String callID);
Alexandre Savardc1b08fe2012-09-25 16:24:47 -040093}