Skip to content
Snippets Groups Projects
Commit ea17dd19 authored by Alexandre Savard's avatar Alexandre Savard
Browse files

[#2521] First version of DBUS CallManager interface documentation

parent 496bd780
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" ?> <?xml version="1.0" encoding="UTF-8" ?>
<node name="/org/sflphone/SFLphone"> <node name="/org/sflphone/SFLphone">
<!--* The CallManager interface is used to manage any call related
actions.
Since SFLphone-daemon support multiple incoming/outgoing
calls, any actions involving a specific call must address the
method by the means of a unique callID. SFLphone-clients is
responsible to generate the callID on outgoing call. On the
otehr hand, SFLphone-daemon will generate a unique callID on
incoming calls.
Actions are performed asynchronously, SFLphone-client should
subscribe to the callStateChanged signal in order to be
notified on updates in call status.
-->
<interface name="org.sflphone.SFLphone.CallManager"> <interface name="org.sflphone.SFLphone.CallManager">
<method name="placeCall"> <method name="placeCall">
<!--* This is the main method in order to place a new call. The
call is registered to the daemon using this method
specified a unique identifier and VoIP Accout to be bound with.
The account is specified by its accountID.
If the call is to be placed whithout any account by the
means of a SIP URI (i.e. sip:num@server), the
"IP2IP_PROFILE" is passed as the accountID. For more
details about accounts see the configuration manager interface.
The callID is a unique identifier that must be randomly
generated on sflphone-client's side. Any subsequent
actions refering to this call must use this callID.
If bound to a VoIP account, the to argument is the phone
number. In case of calls involving "IP2IP_PROFILE", a
complete SIP URI must be specified.
@param[in] input accountID
@param[in] input callID
@param[in] input to
-->
<arg type="s" name="accountID" direction="in" /> <arg type="s" name="accountID" direction="in" />
<arg type="s" name="callID" direction="in" /> <arg type="s" name="callID" direction="in" />
<arg type="s" name="to" direction="in" /> <arg type="s" name="to" direction="in" />
...@@ -14,83 +52,185 @@ ...@@ -14,83 +52,185 @@
</method> </method>
<method name="refuse"> <method name="refuse">
<!--* Method called to refuse an incoming call.
@param[in] input callID
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
</method> </method>
<method name="accept"> <method name="accept">
<!--* Method called to answer an incoming call. Automatically put
the current call on state HOLD.
@param[in] input callID
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
</method> </method>
<method name="hangUp"> <method name="hangUp">
<!--* Method called to hangup a call in state "CURRENT" or "HOLD".
@param[in] input callID
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
</method> </method>
<method name="hangUpConference"> <method name="hangUpConference">
<!--* This method will hangup a conference in state ""
every call participating to the conference.
@param[in] input confID
-->
<arg type="s" name="confID" direction="in"/> <arg type="s" name="confID" direction="in"/>
</method> </method>
<method name="hold"> <method name="hold">
<!--* Place this call on state HOLD.
@param[in] input confID
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
</method> </method>
<method name="unhold"> <method name="unhold">
<!--* Place this call on state CURRENT.
@param[in] input confID
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
</method> </method>
<method name="transfert"> <method name="transfert">
<!--* Transfer a call to given phone number.
@param[in] input confID
@param[in] input to
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
<arg type="s" name="to" direction="in"/> <arg type="s" name="to" direction="in"/>
</method> </method>
<method name="playDTMF"> <method name="playDTMF">
<!--* Dual-Tone multi-frequency. Tell SFLphone-daemon to play
dial tones. A SIP INFO message is sent to notify the server.
@param[in] input Unicode charter for pressed key
-->
<arg type="s" name="key" direction="in"/> <arg type="s" name="key" direction="in"/>
</method> </method>
<method name="startTone"> <method name="startTone">
<!--* This method is used to start audio stream and play tone.
@param[in] input confID
-->
<arg type="i" name="start" direction="in"/> <arg type="i" name="start" direction="in"/>
<arg type="i" name="type" direction="in"/> <arg type="i" name="type" direction="in"/>
</method> </method>
<method name="setVolume"> <method name="setVolume">
<!--* This method sets the volume using a linear scale
[0,100]. Pulseaudio has its own mechanism to modify
application volume. This method is enabled only if the
ALSA API is used.
@param[in] input device
@param[in] input value
-->
<arg type="s" name="device" direction="in"/> <arg type="s" name="device" direction="in"/>
<arg type="d" name="value" direction="in"/> <arg type="d" name="value" direction="in"/>
</method> </method>
<method name="getVolume"> <method name="getVolume">
<!--* This method is enabled only if the ALSA API is used, Pulseaudio
has its own mechanism to modify application volume. Return
a value on a linear scale [0,100].
@param[in] input device
@param[out] output value
-->
<arg type="s" name="device" direction="in"/> <arg type="s" name="device" direction="in"/>
<arg type="d" name="value" direction="out"/> <arg type="d" name="value" direction="out"/>
</method> </method>
<method name="joinParticipant"> <method name="joinParticipant">
<!--* Join two participants together to create a 3-way
conference including current SFLphone-client.
conferenceCreated signal is emited on success.
@param[in] input sel_callID
@param[in] input drag_callID
-->
<arg type="s" name="sel_callID" direction="in"/> <arg type="s" name="sel_callID" direction="in"/>
<arg type="s" name="drag_callID" direction="in"/> <arg type="s" name="drag_callID" direction="in"/>
</method> </method>
<method name="addParticipant"> <method name="addParticipant">
<!--* Join a new particiant to an already created conference.
conferenceChaged signal is emited on success.
@param[in] input callID
@param[in] input confID
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
<arg type="s" name="confID" direction="in"/> <arg type="s" name="confID" direction="in"/>
</method> </method>
<method name="addMainParticipant"> <method name="addMainParticipant">
<!--* As SFLphone-daemon can handle multiple calls and
conferences. It may happen that SFLphone-client's user
leave a conference to answer an incoming call or
send new ones. This method is used to reintroduce
SFLphone-client's user into the conference.
It put the current call on state HOLD or detach
SFLphone-client's user from the another conference.
@param[in] input confID
-->
<arg type="s" name="confID" direction="in"/> <arg type="s" name="confID" direction="in"/>
</method> </method>
<method name="detachParticipant"> <method name="detachParticipant">
<!--* Detach the given call from the conference. If only one
participant is left, the conference is deleted and the
"conferenceRemoved" signal is emited.
@param[in] input callID
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
</method> </method>
<method name="joinConference"> <method name="joinConference">
<!--* Method used to join two conference together.
@param[in] input sel_confID
@param[in] input drag_confID
-->
<arg type="s" name="sel_confID" direction="in"/> <arg type="s" name="sel_confID" direction="in"/>
<arg type="s" name="drag_confID" direction="in"/> <arg type="s" name="drag_confID" direction="in"/>
</method> </method>
<method name="getConferenceDetails"> <method name="getConferenceDetails">
<!--* Returns a hashtable containing conference details.
"CONFID"
"CONF_STATE"
@param[in] input confID
@param[out] output a infos
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="infos" direction="out"/> <arg type="a{ss}" name="infos" direction="out"/>
</method> </method>
<method name="getConferenceList"> <method name="getConferenceList">
<!--* Returns a list containing all active confID in SFLphone-daemon.
@param[out] output list
-->
<arg type="as" name="list" direction="out"/> <arg type="as" name="list" direction="out"/>
</method> </method>
...@@ -104,16 +244,36 @@ ...@@ -104,16 +244,36 @@
</method> </method>
<method name="getCallDetails"> <method name="getCallDetails">
<!--* Returns a hashtable containing call details.
"ACCOUNTID"
"PEER_NUMBER"
"PEER_NAME"
"DISPLAY_NAME" Name to display
"CALL_STATE" The state of the call
"CALL_TYPE" SIP or IAX
@param[in] input callID
@param[out] output a infos
-->
<arg type="s" name="callID" direction="in"/> <arg type="s" name="callID" direction="in"/>
<annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/> <annotation name="com.trolltech.QtDBus.QtTypeName.Out0" value="MapStringString"/>
<arg type="a{ss}" name="infos" direction="out"/> <arg type="a{ss}" name="infos" direction="out"/>
</method> </method>
<method name="getCallList"> <method name="getCallList">
<!--* Returns a list containing all active callID in SFLphone-daemon.
@param[out] output list
-->
<arg type="as" name="list" direction="out"/> <arg type="as" name="list" direction="out"/>
</method> </method>
<method name="getCurrentCallID"> <method name="getCurrentCallID">
<!--* Returns the CURRENT callID
@param[out] output callID
-->
<arg type="s" name="callID" direction="out"/> <arg type="s" name="callID" direction="out"/>
</method> </method>
...@@ -128,6 +288,16 @@ ...@@ -128,6 +288,16 @@
</signal> </signal>
<signal name="incomingCall"> <signal name="incomingCall">
<!--* Signal sent to notify incoming calls.
The callID generated by the daemon and must be stored
by SFLphone-client in order to address other action for
this call.
@param[in] input accountID
@param[in] input callID
@param[in] input from
-->
<arg type="s" name="accountID" /> <arg type="s" name="accountID" />
<arg type="s" name="callID" /> <arg type="s" name="callID" />
<arg type="s" name="from" /> <arg type="s" name="from" />
...@@ -139,33 +309,92 @@ ...@@ -139,33 +309,92 @@
</signal> </signal>
<signal name="callStateChanged"> <signal name="callStateChanged">
<!--* Signal emited by SFLphone-daemon to notify of a chage in
call state.
The following is a liste of possible call state:
"INCOMING" Initial state of incoming calls
"RINGING" Initial state of received outgoing call
"CURRENT" The normal active state of an answered call
"HUNGUP" Notify that the call has been hungup by peer
"BUSY"
"FAILURE" Signal emited on failure to answer the call
"HOLD" CAll state is now on hold
"UNHOLD_RECORD" CAll state is now on CURRENT (pursue recording)
"UNHOLD_CURRENT" CAll state is now on CURRENT
@param[in] input accountID
@param[in] input state
-->
<arg type="s" name="callID" direction="out"/> <arg type="s" name="callID" direction="out"/>
<arg type="s" name="state" direction="out"/> <arg type="s" name="state" direction="out"/>
</signal> </signal>
<signal name="conferenceChanged"> <signal name="conferenceChanged">
<!--* Signal emited by SFLphone-daemon to notify of a chage in
conference state.
The following is a liste of possible conference state:
"ACTIVE_ATACHED" Conference state is active
"ACTIVE_DETACHED" Conference state is active
"HOLD" Conference is on hold
@param[in] input accountID
@param[in] input state
-->
<arg type="s" name="confID" direction="out"/> <arg type="s" name="confID" direction="out"/>
<arg type="s" name="state" direction="out"/> <arg type="s" name="state" direction="out"/>
</signal> </signal>
<method name="getParticipantList"> <method name="getParticipantList">
<!--* Return a vector (or a list) containig the callIP of every
participant to a given conference. SFLphone-client should
keep and update the list of participant.
@param[in] input accountID
@param[out] output List of callID
-->
<arg type="s" name="confID" direction="in"/> <arg type="s" name="confID" direction="in"/>
<arg type="as" name="list" direction="out"/> <arg type="as" name="list" direction="out"/>
</method> </method>
<signal name="conferenceCreated"> <signal name="conferenceCreated">
<!--* Emited when a new conference is created. SFLphone-client
is reponsible to store the confID and call
getParticipantList to update display.
param[out] output Newly generated confID
-->
<arg type="s" name="confID" direction="out"/> <arg type="s" name="confID" direction="out"/>
</signal> </signal>
<signal name="conferenceRemoved"> <signal name="conferenceRemoved">
<!--* Emited when a new conference is removed. SFLphone-client
should have kept a list of current participant in order to
display modification.
@param[out] output confID
-->
<arg type="s" name="confID" direction="out"/> <arg type="s" name="confID" direction="out"/>
</signal> </signal>
<method name="holdConference"> <method name="holdConference">
<!--* Put the hole conference on hold. Every call participating
to this conference will be update to state HOLD.
@param[in] input confID
-->
<arg type="s" name="confID" direction="in"/> <arg type="s" name="confID" direction="in"/>
</method> </method>
<method name="unholdConference"> <method name="unholdConference">
<!--* Put the conference on state ACTIVE. Every call participating
to this conference will be updated to state UNHOLD.
@param[in] input confID
-->
<arg type="s" name="confID" direction="in"/> <arg type="s" name="confID" direction="in"/>
</method> </method>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment