1
<?xml version="1.0" encoding="UTF-8" ?>
3
<node name="/callmanager-introspec" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
4
<interface name="org.sflphone.SFLphone.CallManager">
6
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
7
<p>The CallManager interface is used to manage call and conference related actions.</p>
8
<p>Since SFLphone-daemon supports multiple incoming/outgoing calls, any actions involving a specific call must address the method by the means of a unique callID.
9
SFLphone-clients is responsible for generating the callID on outgoing calls. Conversely, SFLphone-daemon will generate a unique callID for incoming calls.</p>
11
<method name="placeCall" tp:name-for-bindings="placeCall">
13
<p>This is the main method in order to place a new call. The call is registered with the daemon using this method.</p>
15
<arg type="s" name="accountID" direction="in">
17
The ID of the account with which you want to make a call. If the call is to be placed without any account by means of a SIP URI (i.e. sip:num@server), the "IP2IP_PROFILE" is passed as the accountID. For more details on accounts see the configuration manager interface.
20
<arg type="s" name="callID" direction="in">
22
The callID is a unique identifier that must be randomly generated on the client's side. Any subsequent actions refering to this call must use this callID.
25
<arg type="s" name="to" direction="in">
27
If bound to a VoIP account, then the argument is the phone number. In case of calls involving "IP2IP_PROFILE", a complete SIP URI must be specified.
30
<arg type="b" name="callSucceeded" direction="out"/>
33
<method name="refuse" tp:name-for-bindings="refuse">
35
Refuse an incoming call.
37
<arg type="s" name="callID" direction="in">
42
<arg type="b" name="refuseSucceeded" direction="out"/>
46
<method name="accept" tp:name-for-bindings="accept">
48
Answer an incoming call. Automatically puts the current call on HOLD.
50
<arg type="s" name="callID" direction="in">
55
<arg type="b" name="acceptSucceeded" direction="out"/>
58
<method name="hangUp" tp:name-for-bindings="hangUp">
60
Hangup a call in state "CURRENT" or "HOLD".
62
<arg type="s" name="callID" direction="in">
67
<arg type="b" name="hangupSucceeded" direction="out"/>
70
<method name="hangUpConference" tp:name-for-bindings="hangUpConference">
71
<tp:added version="0.9.7"/>
73
Hangup a conference, and every call participating to the conference.
75
<arg type="s" name="confID" direction="in">
77
The unique conference ID.
80
<arg type="b" name="hangupSucceeded" direction="out"/>
83
<method name="hold" tp:name-for-bindings="hold">
87
<arg type="s" name="callID" direction="in">
92
<arg type="b" name="holdSucceeded" direction="out"/>
95
<method name="unhold" tp:name-for-bindings="unhold">
97
Take a call off hold, and place this call in state CURRENT.
99
<arg type="s" name="callID" direction="in">
104
<arg type="b" name="unHoldSucceeded" direction="out"/>
107
<method name="transfer" tp:name-for-bindings="transfer">
109
Transfer a call to the given phone number.
111
<arg type="s" name="callID" direction="in">
116
<arg type="s" name="to" direction="in">
118
The phone number to which the call will be transferred.
121
<arg type="b" name="transferSucceeded" direction="out"/>
124
<method name="attendedTransfer" tp:name-for-bindings="attendedTransfer">
126
Perform an attended transfer on two calls.
128
<arg type="s" name="transferID" direction="in">
130
The callID of the call to be transfered.
133
<arg type="s" name="targetID" direction="in">
135
The callID of the target call.
138
<arg type="b" name="transferSucceeded" direction="out"/>
141
<method name="playDTMF" tp:name-for-bindings="playDTMF">
143
Dual-Tone multi-frequency. Tell the core to play dialtones. A SIP INFO message is sent to notify the server.
145
<arg type="s" name="key" direction="in">
147
Unicode character for pressed key.
152
<method name="startTone" tp:name-for-bindings="startTone">
154
Start audio stream and play tone.
156
<arg type="i" name="start" direction="in"/>
157
<arg type="i" name="type" direction="in"/>
160
<method name="joinParticipant" tp:name-for-bindings="joinParticipant">
161
<tp:added version="0.9.7"/>
163
<p>Join two participants together to create a 3-way conference including the current client.</p>
164
<tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale>
166
<arg type="s" name="sel_callID" direction="in"/>
167
<arg type="s" name="drag_callID" direction="in"/>
168
<arg type="b" name="joinSucceeded" direction="out"/>
171
<method name="createConfFromParticipantList" tp:name-for-bindings="createConfFromParticipantList">
172
<tp:added version="0.9.14"/>
174
<p>Create a conference from a list of participants</p>
175
<tp:rationale>The signal <tp:member-ref>conferenceCreated</tp:member-ref> is emitted on success.</tp:rationale>
177
<arg type="as" name="participants" direction="in"/>
180
<method name="isConferenceParticipant" tp:name-for-bindings="isConferenceParticipant">
181
<arg type="s" name="callID" direction="in"/>
182
<arg type="b" name="isParticipant" direction="out"/>
185
<method name="addParticipant" tp:name-for-bindings="addParticipant">
186
<tp:added version="0.9.7"/>
188
<p>Join a new particiant to an existing conference.</p>
189
<tp:rationale>The signal <tp:member-ref>conferenceChanged</tp:member-ref> is emitted on success.</tp:rationale>
191
<arg type="s" name="callID" direction="in">
193
The ID of the call to add to the conference
196
<arg type="s" name="confID" direction="in">
198
An existing conference ID
201
<arg type="b" name="addSucceeded" direction="out"/>
204
<method name="addMainParticipant" tp:name-for-bindings="addMainParticipant">
205
<tp:added version="0.9.7"/>
207
<p>As the core can handle multiple calls and conferences, it may happen that the client's user leaves a conference to answer an incoming call or to start new calls. This method is used to reintroduce SFLphone-client's user into the conference.</p>
208
<p>Its put the current call on HOLD or detaches SFLphone-client's user from the another conference.</p>
210
<arg type="s" name="confID" direction="in">
212
An existing conference ID
215
<arg type="b" name="addSucceeded" direction="out"/>
218
<method name="detachParticipant" tp:name-for-bindings="detachParticipant">
219
<tp:added version="0.9.7"/>
221
Detach the given call from the conference. If only one participant is left, the conference is deleted and the signal <tp:member-ref>conferenceRemoved</tp:member-ref> is emited.
223
<arg type="s" name="callID" direction="in">
228
<arg type="b" name="detachSucceeded" direction="out"/>
231
<method name="joinConference" tp:name-for-bindings="joinConference">
232
<tp:added version="0.9.7"/>
234
Join two conferences together.
236
<arg type="s" name="sel_confID" direction="in"/>
237
<arg type="s" name="drag_confID" direction="in"/>
238
<arg type="b" name="joinSucceeded" direction="out"/>
241
<method name="getConferenceDetails" tp:name-for-bindings="getConferenceDetails">
242
<tp:added version="0.9.7"/>
244
Returns a hashtable containing conference details.
246
<arg type="s" name="callID" direction="in">
251
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
252
<arg type="a{ss}" name="infos" direction="out">
254
A map containing the ID of the conferences
257
<li>ACTIVE_ATTACHED</li>
258
<li>ACTIVE_DETACHED</li>
265
<method name="getConferenceList" tp:name-for-bindings="getConferenceList">
266
<tp:added version="0.9.7"/>
268
Returns a list containing all active
270
<tp:rationale>To update client status, one should
271
use <tp:member-ref>getParticipantList</tp:member-ref>
272
with provided conference IDs.</tp:rationale>
274
<arg type="as" name="list" direction="out">
276
The list of conferences.
281
<method name="getConferenceId" tp:name-for-bindings="getConferenceId">
282
<tp:added version="1.1.0"/>
284
If thsi call participate to a conference, return the conference id.
285
Return an empty string elsewhere.
287
<arg type="s" name="callID" direction="in">
292
<arg type="s" name="confID" direction="out">
294
A string containing the conference ID, or an empty string.
299
<method name="toggleRecording" tp:name-for-bindings="toggleRecording">
301
Toggle recording for a call.
303
<arg type="s" name="callID" direction="in">
305
The ID of the call to start/stop recording.
308
<arg type="b" name="isRecording" direction="out">
310
Returns true is the call is being recorded. False otherwise.
315
<method name="setRecording" tp:name-for-bindings="setRecording">
316
<annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
318
Start recording a call.
320
<arg type="s" name="callID" direction="in">
322
The ID of the call to record.
327
<method name="getIsRecording" tp:name-for-bindings="getIsRecording">
329
Tells whether or not a call is being recorded.
331
<arg type="s" name="callID" direction="in">
336
<arg type="b" name="isRecording" direction="out">
338
Returns true is the call is being recorded. False otherwise.
343
<method name="recordPlaybackSeek" tp:name-for-bindings="recordPlaybackSeek">
345
<p>Sets the playback position using a linear scale [0,100].</p>
347
<arg type="d" name="value" direction="in"/>
350
<signal name="recordPlaybackFilepath" tp:name-for-bindings="recordPlaybackFilepath">
352
Once after starting recording for the first time, this signal is emited to
353
provide the recorded file path to client application.
355
<arg type="s" name="callID" />
356
<arg type="s" name="filepath"/>
359
<signal name="recordPlaybackStopped" tp:name-for-bindings="recordPlaybackStopped">
361
<arg type="s" name="filepath" />
364
<signal name="updatePlaybackScale" tp:name-for-bindings="updatePlaybackScale">
366
<arg type="s" name="filepath" />
367
<arg type="i" name="position" />
368
<arg type="i" name="size" />
371
<method name="getCallDetails" tp:name-for-bindings="getCallDetails">
373
Get all the details about a specific call.
375
<arg type="s" name="callID" direction="in">
380
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
381
<arg type="a{ss}" name="infos" direction="out" tp:type="String_String_Map">
382
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
383
<p>A map containing the call details: </p>
388
<li>DISPLAY_NAME</li>
397
<method name="getCallList" tp:name-for-bindings="getCallList">
399
Get the list of active calls.
400
<tp:rationale>To get the call details, iterate on the return value and call <tp:member-ref>getCallDetails</tp:member-ref> method.</tp:rationale>
402
<arg type="as" name="list" direction="out">
409
<method name="getCurrentAudioCodecName" tp:name-for-bindings="getCurrentAudioCodecName">
410
<arg type="s" name="callID" direction="in"/>
411
<arg type="s" name="codecName" direction="out"/>
414
<method name="sendTextMessage" tp:name-for-bindings="sendTextMessage">
416
Send a text message to the specified call
418
<arg type="s" name="callID" direction="in"/>
419
<arg type="s" name="message" direction="in"/>
422
<signal name="newCallCreated" tp:name-for-bindings="newCallCreated">
424
<p>Notify that a call has been created.</p>
425
<p>The callID generated by the daemon must be stored by the clients in order to address other actions for
426
this call. This signal is emitted when call haves been created by the daemon itself.</p>
427
<tp:rationale>The client must subscribe to this signal to handle calls created by other clients</tp:rationale>
429
<arg type="s" name="accountID">
431
The account ID of the call. Clients must notify the right account when receiving this signal.
434
<arg type="s" name="callID">
439
<arg type="s" name="to">
441
The SIP URI this call is trying to reach.
446
<signal name="incomingCall" tp:name-for-bindings="incomingCall">
448
<p>Notify an incoming call.</p>
449
<p>The callID generated by the daemon must be stored by the clients in order to address other action for
450
this call. This signal is emitted when we receive a call from a remote peer</p>
451
<tp:rationale>The client must subscribe to this signal to handle incoming calls.</tp:rationale>
453
<arg type="s" name="accountID">
455
The account ID of the callee. Clients must notify the right account when receiving this signal.
458
<arg type="s" name="callID">
463
<arg type="s" name="from">
465
The caller phone number.
470
<signal name="incomingMessage" tp:name-for-bindings="incomingMessage">
472
Notify clients that a new text message has been received.
474
<arg type="s" name="callID" />
475
<arg type="s" name="from" />
476
<arg type="s" name="message" />
479
<signal name="callStateChanged" tp:name-for-bindings="callStateChanged">
481
<p>Notify of a change in a call state.</p>
482
<p>The client must subscribe to this signal.</p>
484
<arg type="s" name="callID">
489
<arg type="s" name="state" >
491
The acceptable states are:
493
<li>INCOMING: Initial state of incoming calls</li>
494
<li>RINGING: Initial state of received outgoing call</li>
495
<li>CURRENT: The normal active state of an answered call</li>
496
<li>HUNGUP: Notify that the call has been hungup by peer</li>
498
<li>FAILURE: Error when processing a call</li>
506
<signal name="conferenceChanged" tp:name-for-bindings="conferenceChanged">
507
<tp:added version="0.9.7"/>
509
Notify of a change in the conferences state
511
<arg type="s" name="confID">
516
<arg type="s" name="state">
518
The acceptable states are:
520
<li>ACTIVE_ATTACHED: SFLphone user is
521
participating to this conference</li>
522
<li>ACTIVE_DETACHED: This situation can
523
occur if a call is received while
524
SFLphone user is participating to a
525
conference. In this case, one can leave
526
the conference by answering the
527
call. Other participants may continue
528
conferencing normally.</li>
529
<li>HOLD: Each call in this conference
530
is on state HOLD</li>
536
<method name="getParticipantList" tp:name-for-bindings="getParticipantList">
537
<tp:added version="0.9.7"/>
539
Get the call IDs of every participant to a given conference. The client should keep and update the list of participants.
541
<arg type="s" name="confID" direction="in">
546
<arg type="as" name="list" direction="out">
548
The list of the call IDs.
553
<signal name="conferenceCreated" tp:name-for-bindings="conferenceCreated">
554
<tp:added version="0.9.7"/>
556
Emited when a new conference is created. SFLphone-client is reponsible for storing the confID and call <tp:member-ref>getParticipantList</tp:member-ref> to update the display.
558
<arg type="s" name="confID">
565
<signal name="conferenceRemoved" tp:name-for-bindings="conferenceRemoved">
566
<tp:added version="0.9.7"/>
568
Emited when a new conference is remove. SFLphone-client should have kept a list of current participant in order to display modification.
570
<arg type="s" name="confID">
577
<method name="holdConference" tp:name-for-bindings="holdConference">
578
<tp:added version="0.9.7"/>
580
Hold every call which is participating in this conference.
582
<arg type="s" name="confID" direction="in">
587
<arg type="b" name="holdSucceeded" direction="out"/>
590
<method name="unholdConference" tp:name-for-bindings="unholdConference">
591
<tp:added version="0.9.7"/>
593
Hold off every call participating in this conference.
595
<arg type="s" name="confID" direction="in">
600
<arg type="b" name="unholdSucceeded" direction="out"/>
603
<method name="startRecordedFilePlayback" tp:name-for-bindings="startRecordedFilePlayback">
604
<tp:added version="0.9.14"/>
605
<arg type="s" name="filepath" direction="in"/>
606
<arg type="b" name="result" direction="out"/>
609
<method name="stopRecordedFilePlayback" tp:name-for-bindings="stopRecordedFilePlayback">
610
<tp:added version="0.9.14"/>
612
<arg type="s" name="filepath" direction="in"/>
615
<signal name="sipCallStateChanged" tp:name-for-bindings="sipCallStateChanged">
617
<p>Call state changed, SFLphone received a notification
618
from registrar concerning this call.</p>
620
<arg type="s" name="callID" />
624
<arg type="s" name="state" />
628
<arg type="i" name="code" />
630
The SIP or IAX2 message code
634
<signal name="voiceMailNotify" tp:name-for-bindings="voiceMailNotify">
636
Notify the clients of the voicemail number for a specific account, if applicable.
638
<arg type="s" name="accountID">
643
<arg type="i" name="count">
645
The number of waiting messages.
650
<signal name="transferSucceeded" tp:name-for-bindings="transferSucceeded">
652
<p>Transfer has been successfully
653
processed. Client should remove transfered
654
call from call list as it is no longer
655
accessible in SFLphone-daemon.</p>
659
<signal name="transferFailed" tp:name-for-bindings="transferFailed">
661
<p>Transfer operation failed. Corresponding
662
call is no longer accessible in
667
<signal name="secureSdesOn" tp:name-for-bindings="secureSdesOn">
668
<tp:added version="0.9.7"/>
670
<p>Signal sent on SDES session success. Media transmission is encripted
671
for this call only. It does not apply for a conference.</p>
672
<p>A conference can be considered to be secured if and only if each
673
participant is secured.</p>
675
<arg type="s" name="callID"/>
678
<signal name="secureSdesOff" tp:name-for-bindings="secureSdesOff">
679
<tp:added version="0.9.7"/>
681
<p>Sinal sent to notify that SDES session failed.</p>
682
<p>Media transmission is not encrypted.</p>
684
<arg type="s" name="callID" />
687
<!-- ZRTP Methods and Signals -->
688
<signal name="secureZrtpOn" tp:name-for-bindings="secureZrtpOn">
689
<tp:added version="0.9.7"/>
690
<arg type="s" name="callID" />
691
<arg type="s" name="cipher" />
694
<signal name="secureZrtpOff" tp:name-for-bindings="secureZrtpOff">
695
<tp:added version="0.9.7"/>
696
<arg type="s" name="callID" />
699
<signal name="confirmGoClear" tp:name-for-bindings="confirmGoClear">
700
<tp:added version="0.9.7"/>
701
<arg type="s" name="callID" />
704
<signal name="recordingStateChanged" tp:name-for-bindings="recordingStateChange">
705
<tp:added version="1.3.0"/>
706
<arg type="s" name="callID" />
707
<arg type="b" name="recordingState"/>
710
<signal name="zrtpNegotiationFailed" tp:name-for-bindings="zrtpNegotiationFailed">
711
<tp:added version="0.9.7"/>
712
<arg type="s" name="callID" />
713
<arg type="s" name="reason" />
714
<arg type="s" name="severity" />
717
<signal name="zrtpNotSuppOther" tp:name-for-bindings="zrtpNotSuppOther">
718
<tp:added version="0.9.7"/>
719
<arg type="s" name="callID" />
722
<signal name="showSAS" tp:name-for-bindings="showSAS">
723
<tp:added version="0.9.7"/>
724
<tp:added version="0.9.7"/>
725
<arg type="s" name="callID" />
726
<arg type="s" name="sas" />
727
<arg type="b" name="verified"/>
730
<method name="setSASVerified" tp:name-for-bindings="setSASVerified">
731
<tp:added version="0.9.7"/>
732
<arg type="s" name="callID" direction="in"/>
735
<method name="resetSASVerified" tp:name-for-bindings="resetSASVerified">
736
<tp:added version="0.9.7"/>
737
<arg type="s" name="callID" direction="in"/>
740
<method name="setConfirmGoClear" tp:name-for-bindings="setConfirmGoClear">
741
<tp:added version="0.9.7"/>
742
<arg type="s" name="callID" direction="in"/>
745
<method name="requestGoClear" tp:name-for-bindings="requestGoClear">
746
<tp:added version="0.9.7"/>
747
<arg type="s" name="callID" direction="in"/>
750
<method name="acceptEnrollment" tp:name-for-bindings="acceptEnrollment">
751
<tp:added version="0.9.7"/>
752
<arg type="s" name="callID" direction="in"/>
753
<arg type="b" name="accepted" direction="in"/>