public class CallJabberImpl extends AbstractCallJabberGTalkImpl<CallPeerJabberImpl>
DEFAULT_DEVICE, localVideoAllowed, mediaUseCase, parentOpSet
CONFERENCE, CONFERENCE_FOCUS, useTranslator
Modifier | Constructor and Description |
---|---|
protected |
CallJabberImpl(OperationSetBasicTelephonyJabberImpl parentOpSet)
Initializes a new CallJabberImpl instance.
|
Modifier and Type | Method and Description |
---|---|
void |
closeColibriStreamConnector(CallPeerJabberImpl peer,
org.jitsi.service.neomedia.MediaType mediaType,
ColibriStreamConnector colibriStreamConnector)
Closes a specific ColibriStreamConnector which is associated with
a MediaStream of a specific MediaType upon request from
a specific CallPeer.
|
protected void |
conferenceFocusChanged(boolean oldValue,
boolean newValue)
Notifies this instance that the value of its property
Call.CONFERENCE_FOCUS has changed from a specific old value to a
specific new value. |
ColibriConferenceIQ |
createColibriChannels(CallPeerJabberImpl peer,
java.util.Map<ContentPacketExtension,ContentPacketExtension> contentMap)
Allocates colibri (conference) channels for a specific MediaType
to be used by a specific CallPeer.
|
ColibriStreamConnector |
createColibriStreamConnector(CallPeerJabberImpl peer,
org.jitsi.service.neomedia.MediaType mediaType,
ColibriConferenceIQ.Channel channel,
org.jitsi.service.neomedia.StreamConnectorFactory factory)
Initializes a ColibriStreamConnector on behalf of a specific
CallPeer to be used in association with a specific
ColibriConferenceIQ.Channel of a specific MediaType.
|
void |
expireColibriChannels(CallPeerJabberImpl peer,
ColibriConferenceIQ conference)
Expires specific (colibri) conference channels used by a specific
CallPeer.
|
java.lang.String |
getJitsiVideobridge()
Gets the entity ID of the Jitsi Videobridge to be utilized by this
Call for the purposes of establishing a server-assisted
telephony conference.
|
CallPeerJabberImpl |
initiateSession(java.lang.String calleeJID,
org.jivesoftware.smackx.packet.DiscoverInfo discoverInfo,
java.lang.Iterable<org.jivesoftware.smack.packet.PacketExtension> sessionInitiateExtensions,
java.util.Collection<java.lang.String> supportedTransports)
Creates a CallPeerJabberImpl from calleeJID and sends
them session-initiate IQ request.
|
void |
modifyVideoContent()
Updates the Jingle sessions for the CallPeers of this
Call, to reflect the current state of the the video contents of
this Call.
|
(package private) boolean |
processColibriConferenceIQ(ColibriConferenceIQ conferenceIQ)
Notifies this instance that a specific ColibriConferenceIQ has
been received.
|
CallPeerJabberImpl |
processSessionInitiate(JingleIQ jingleIQ)
Creates a new call peer and sends a RINGING response.
|
void |
setChannelDirection(java.lang.String channelID,
org.jitsi.service.neomedia.MediaType mediaType,
org.jitsi.service.neomedia.MediaDirection direction)
Sends a ColibriConferenceIQ to the videobridge used by this
CallJabberImpl, in order to request the the direction of
the channel with ID channelID be set to
direction
|
(package private) static void |
setDtlsEncryptionOnTransport(org.jitsi.service.neomedia.DtlsControl dtlsControl,
IceUdpTransportPacketExtension localTransport)
Sets the properties (i.e.
|
void |
toneReceived(DTMFReceivedEvent evt)
Called when a new incoming DTMFTone has been received.
|
containsSID, getLocalInputEvtAware, getPeer, getPeerBySessInitPacketID, setLocalInputEvtAware
addCallPeer, addLocalUserSoundLevelListener, addVideoPropertyChangeListener, createConference, createRecorder, firePropertyChange, getConference, getDefaultDevice, getMediaUseCase, getParentOperationSet, getRTPTranslator, isConferenceFocus, isLocalVideoAllowed, isLocalVideoStreaming, isMute, peerAddressChanged, peerDisplayNameChanged, peerImageChanged, peerStateChanged, peerTransportAddressChanged, propertyChange, removeLocalUserSoundLevelListener, removeVideoPropertyChangeListener, setAudioDevice, setCallState, setConference, setLocalVideoAllowed, setMute, setVideoDevice
addPropertyChangeListener, doAddCallPeer, doRemoveCallPeer, getCallPeerCount, getCallPeerList, getCallPeers, getProtocolProvider, removePropertyChangeListener
addCallChangeListener, equals, fireCallChangeEvent, fireCallChangeEvent, fireCallPeerEvent, fireCallPeerEvent, getCallID, getCallState, hashCode, isAutoAnswer, isDefaultEncrypted, isSipZrtpAttribute, removeCallChangeListener, setAutoAnswer, setCallState, toString
getData, setData
protected CallJabberImpl(OperationSetBasicTelephonyJabberImpl parentOpSet)
parentOpSet
- the OperationSetBasicTelephonyJabberImpl
instance in the context of which this call has been created.public void closeColibriStreamConnector(CallPeerJabberImpl peer, org.jitsi.service.neomedia.MediaType mediaType, ColibriStreamConnector colibriStreamConnector)
peer
- the CallPeer which requests the closing of the
specified colibriStreamConnectormediaType
- the MediaType of the MediaStream with
which the specified colibriStreamConnector is associatedcolibriStreamConnector
- the ColibriStreamConnector to close on
behalf of the specified peerprotected void conferenceFocusChanged(boolean oldValue, boolean newValue)
Call.CONFERENCE_FOCUS
has changed from a specific old value to a
specific new value. Fires a PropertyChangeEvent to the
registered PropertyChangeListeners. Protocol implementations
which extend MediaAwareCall will likely want to override in
order to add notifying the associated CallPeers about the change
of the property value (e.g. SIP will want to include the
"isfocus" parameter in the Contact header while the local peer
is acting as a conference focus.)
Sends a content message to each of the CallPeers
associated with this CallJabberImpl in order to include/exclude
the "isfocus" attribute.conferenceFocusChanged
in class MediaAwareCall<CallPeerJabberImpl,OperationSetBasicTelephonyJabberImpl,ProtocolProviderServiceJabberImpl>
oldValue
- the value of the property CONFERENCE_FOCUS
before the changenewValue
- the value of the property CONFERENCE_FOCUS after
the changepublic ColibriConferenceIQ createColibriChannels(CallPeerJabberImpl peer, java.util.Map<ContentPacketExtension,ContentPacketExtension> contentMap) throws OperationFailedException
peer
- the CallPeer which is to use the allocated colibri
(conference) channelscontentMap
- the local and remote ContentPacketExtensions
which specify the MediaTypes for which colibri (conference)
channels are to be allocatedOperationFailedException
public ColibriStreamConnector createColibriStreamConnector(CallPeerJabberImpl peer, org.jitsi.service.neomedia.MediaType mediaType, ColibriConferenceIQ.Channel channel, org.jitsi.service.neomedia.StreamConnectorFactory factory)
peer
- the CallPeer which requests the initialization of a
ColibriStreamConnectormediaType
- the MediaType of the stream which is to use the
initialized ColibriStreamConnector for RTP and RTCP trafficchannel
- the ColibriConferenceIQ.Channel to which RTP and
RTCP traffic is to be sent and from which such traffic is to be received
via the initialized ColibriStreamConnectorfactory
- a StreamConnectorFactory implementation which is
to allocate the sockets to be used for RTP and RTCP trafficpublic void expireColibriChannels(CallPeerJabberImpl peer, ColibriConferenceIQ conference)
peer
- the CallPeer which uses the specified (colibri)
conference channels to be expiredconference
- a ColibriConferenceIQ which specifies the
(colibri) conference channels to be expiredpublic void setChannelDirection(java.lang.String channelID, org.jitsi.service.neomedia.MediaType mediaType, org.jitsi.service.neomedia.MediaDirection direction)
channelID
- the ID of the channel for which to set the
direction.mediaType
- the MediaType of the channel (we can deduce this
by searching the ColibriConferenceIQ, but it's more convenient
to have it)direction
- the MediaDirection to set.public CallPeerJabberImpl initiateSession(java.lang.String calleeJID, org.jivesoftware.smackx.packet.DiscoverInfo discoverInfo, java.lang.Iterable<org.jivesoftware.smack.packet.PacketExtension> sessionInitiateExtensions, java.util.Collection<java.lang.String> supportedTransports) throws OperationFailedException
calleeJID
- the party that we would like to invite to this call.discoverInfo
- any discovery information that we have for the jid
we are trying to reach and that we are passing in order to avoid having
to ask for it again.sessionInitiateExtensions
- a collection of additional and optional
PacketExtensions to be added to the session-initiate
JingleIQ
which is to init this CallJabberImplsupportedTransports
- the XML namespaces of the jingle transports
to use.OperationFailedException
- with the corresponding code if we fail
to create the call.public void modifyVideoContent() throws OperationFailedException
modifyVideoContent
in class AbstractCallJabberGTalkImpl<CallPeerJabberImpl>
OperationFailedException
- if a problem occurred during message
generation or there was a network problemboolean processColibriConferenceIQ(ColibriConferenceIQ conferenceIQ)
conferenceIQ
- the ColibriConferenceIQ which has been
receivedpublic CallPeerJabberImpl processSessionInitiate(JingleIQ jingleIQ)
jingleIQ
- the JingleIQ
that created the session.CallPeerJabberImpl
(the one that sent
the INVITE).static void setDtlsEncryptionOnTransport(org.jitsi.service.neomedia.DtlsControl dtlsControl, IceUdpTransportPacketExtension localTransport)
dtlsControl
- the DtlsControl the properties of which are
to be set on the specified localTransportlocalTransport
- the IceUdpTransportPacketExtension on
which the properties of the specified dtlsControl are to be setpublic java.lang.String getJitsiVideobridge()
public void toneReceived(DTMFReceivedEvent evt)
DTMFListener.toneReceived(net.java.sip.communicator.service.protocol.event.DTMFReceivedEvent)
Implements
DTMFListener.toneReceived(net.java.sip.communicator.service.protocol.event.DTMFReceivedEvent)
Forwards DTMF events to the IncomingDTMF operation set, setting
this Call as the source.toneReceived
in interface DTMFListener
toneReceived
in class MediaAwareCall<CallPeerJabberImpl,OperationSetBasicTelephonyJabberImpl,ProtocolProviderServiceJabberImpl>
evt
- the DTMFReceivedEvent containing the newly
received tone.
Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under Apache license.