add namespace for jingle file transfer
add jingle FT to gajim.gajim_optional_features
This commit is contained in:
parent
1880d3ec41
commit
01c1465dfb
|
@ -51,7 +51,7 @@ from common.logger import constants
|
||||||
from common.pep import MOODS, ACTIVITIES
|
from common.pep import MOODS, ACTIVITIES
|
||||||
from common.xmpp.protocol import NS_XHTML, NS_XHTML_IM, NS_FILE, NS_MUC
|
from common.xmpp.protocol import NS_XHTML, NS_XHTML_IM, NS_FILE, NS_MUC
|
||||||
from common.xmpp.protocol import NS_RECEIPTS, NS_ESESSION
|
from common.xmpp.protocol import NS_RECEIPTS, NS_ESESSION
|
||||||
from common.xmpp.protocol import NS_JINGLE_RTP_AUDIO, NS_JINGLE_RTP_VIDEO, NS_JINGLE_ICE_UDP
|
from common.xmpp.protocol import NS_JINGLE_RTP_AUDIO, NS_JINGLE_RTP_VIDEO, NS_JINGLE_ICE_UDP, NS_JINGLE_FILE_TRANSFER
|
||||||
|
|
||||||
from command_system.implementation.middleware import ChatCommandProcessor
|
from command_system.implementation.middleware import ChatCommandProcessor
|
||||||
from command_system.implementation.middleware import CommandTools
|
from command_system.implementation.middleware import CommandTools
|
||||||
|
@ -1496,12 +1496,12 @@ class ChatControl(ChatControlBase):
|
||||||
self._video_button.set_sensitive(self.video_available)
|
self._video_button.set_sensitive(self.video_available)
|
||||||
|
|
||||||
# Send file
|
# Send file
|
||||||
if self.contact.supports(NS_FILE) and self.contact.resource:
|
if (self.contact.supports(NS_FILE) or self.contact.supports(NS_JINGLE_FILE_TRANSFER)) and self.contact.resource:
|
||||||
self._send_file_button.set_sensitive(True)
|
self._send_file_button.set_sensitive(True)
|
||||||
self._send_file_button.set_tooltip_text('')
|
self._send_file_button.set_tooltip_text('')
|
||||||
else:
|
else:
|
||||||
self._send_file_button.set_sensitive(False)
|
self._send_file_button.set_sensitive(False)
|
||||||
if not self.contact.supports(NS_FILE):
|
if not (self.contact.supports(NS_FILE) or self.contact.supports(NS_JINGLE_FILE_TRANSFER)):
|
||||||
self._send_file_button.set_tooltip_text(_(
|
self._send_file_button.set_tooltip_text(_(
|
||||||
"This contact does not support file transfer."))
|
"This contact does not support file transfer."))
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -182,7 +182,7 @@ class ConnectionDisco:
|
||||||
query = iq.setTag('query')
|
query = iq.setTag('query')
|
||||||
query.setAttr('node', 'http://gajim.org#' + gajim.version.split('-', 1)[0])
|
query.setAttr('node', 'http://gajim.org#' + gajim.version.split('-', 1)[0])
|
||||||
for f in (common.xmpp.NS_BYTESTREAM, common.xmpp.NS_SI,
|
for f in (common.xmpp.NS_BYTESTREAM, common.xmpp.NS_SI,
|
||||||
common.xmpp.NS_FILE, common.xmpp.NS_COMMANDS):
|
common.xmpp.NS_FILE, common.xmpp.NS_COMMANDS, common.xmpp.NS_JINGLE_FILE_TRANSFER):
|
||||||
feature = common.xmpp.Node('feature')
|
feature = common.xmpp.Node('feature')
|
||||||
feature.setAttr('var', f)
|
feature.setAttr('var', f)
|
||||||
query.addChild(node=feature)
|
query.addChild(node=feature)
|
||||||
|
|
|
@ -1316,6 +1316,7 @@ def update_optional_features(account = None):
|
||||||
gajim.gajim_optional_features[a].append(xmpp.NS_JINGLE_RTP_AUDIO)
|
gajim.gajim_optional_features[a].append(xmpp.NS_JINGLE_RTP_AUDIO)
|
||||||
gajim.gajim_optional_features[a].append(xmpp.NS_JINGLE_RTP_VIDEO)
|
gajim.gajim_optional_features[a].append(xmpp.NS_JINGLE_RTP_VIDEO)
|
||||||
gajim.gajim_optional_features[a].append(xmpp.NS_JINGLE_ICE_UDP)
|
gajim.gajim_optional_features[a].append(xmpp.NS_JINGLE_ICE_UDP)
|
||||||
|
gajim.gajim_optional_features[a].append(xmpp.NS_JINGLE_FILE_TRANSFER)
|
||||||
gajim.caps_hash[a] = caps_cache.compute_caps_hash([gajim.gajim_identity],
|
gajim.caps_hash[a] = caps_cache.compute_caps_hash([gajim.gajim_identity],
|
||||||
gajim.gajim_common_features + gajim.gajim_optional_features[a])
|
gajim.gajim_common_features + gajim.gajim_optional_features[a])
|
||||||
# re-send presence with new hash
|
# re-send presence with new hash
|
||||||
|
|
|
@ -69,6 +69,7 @@ NS_JINGLE_ERRORS='urn:xmpp:jingle:errors:1' # XEP-01
|
||||||
NS_JINGLE_RTP ='urn:xmpp:jingle:apps:rtp:1' # XEP-0167
|
NS_JINGLE_RTP ='urn:xmpp:jingle:apps:rtp:1' # XEP-0167
|
||||||
NS_JINGLE_RTP_AUDIO='urn:xmpp:jingle:apps:rtp:audio' # XEP-0167
|
NS_JINGLE_RTP_AUDIO='urn:xmpp:jingle:apps:rtp:audio' # XEP-0167
|
||||||
NS_JINGLE_RTP_VIDEO='urn:xmpp:jingle:apps:rtp:video' # XEP-0167
|
NS_JINGLE_RTP_VIDEO='urn:xmpp:jingle:apps:rtp:video' # XEP-0167
|
||||||
|
NS_JINGLE_FILE_TRANSFER='urn:xmpp:jingle:apps:file-transfer:1' # XEP-0234
|
||||||
NS_JINGLE_RAW_UDP='urn:xmpp:jingle:transports:raw-udp:1' # XEP-0177
|
NS_JINGLE_RAW_UDP='urn:xmpp:jingle:transports:raw-udp:1' # XEP-0177
|
||||||
NS_JINGLE_ICE_UDP='urn:xmpp:jingle:transports:ice-udp:1' # XEP-0176
|
NS_JINGLE_ICE_UDP='urn:xmpp:jingle:transports:ice-udp:1' # XEP-0176
|
||||||
NS_LAST ='jabber:iq:last'
|
NS_LAST ='jabber:iq:last'
|
||||||
|
|
|
@ -35,6 +35,10 @@ from common import gajim
|
||||||
from common import helpers
|
from common import helpers
|
||||||
from common.protocol.bytestream import (is_transfer_active, is_transfer_paused,
|
from common.protocol.bytestream import (is_transfer_active, is_transfer_paused,
|
||||||
is_transfer_stopped)
|
is_transfer_stopped)
|
||||||
|
from common.xmpp.protocol import NS_JINGLE_FILE_TRANSFER
|
||||||
|
import logging
|
||||||
|
|
||||||
|
log = logging.getLogger('gajim.filetransfer_window')
|
||||||
|
|
||||||
C_IMAGE = 0
|
C_IMAGE = 0
|
||||||
C_LABELS = 1
|
C_LABELS = 1
|
||||||
|
@ -299,6 +303,10 @@ class FileTransfersWindow:
|
||||||
if file_props is None:
|
if file_props is None:
|
||||||
return False
|
return False
|
||||||
self.add_transfer(account, contact, file_props)
|
self.add_transfer(account, contact, file_props)
|
||||||
|
if contact.supports(NS_JINGLE_FILE_TRANSFER):
|
||||||
|
log.info("contacts supports jingle file transfer")
|
||||||
|
else:
|
||||||
|
log.info("contacts does not support jingle file transfer")
|
||||||
gajim.connections[account].send_file_request(file_props)
|
gajim.connections[account].send_file_request(file_props)
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ import message_control
|
||||||
|
|
||||||
from common import gajim
|
from common import gajim
|
||||||
from common import helpers
|
from common import helpers
|
||||||
from common.xmpp.protocol import NS_COMMANDS, NS_FILE, NS_MUC, NS_ESESSION
|
from common.xmpp.protocol import NS_COMMANDS, NS_FILE, NS_MUC, NS_ESESSION, NS_JINGLE_FILE_TRANSFER
|
||||||
|
|
||||||
def build_resources_submenu(contacts, account, action, room_jid=None,
|
def build_resources_submenu(contacts, account, action, room_jid=None,
|
||||||
room_account=None, cap=None):
|
room_account=None, cap=None):
|
||||||
|
@ -225,7 +225,7 @@ control=None):
|
||||||
else:
|
else:
|
||||||
start_chat_menuitem.connect('activate',
|
start_chat_menuitem.connect('activate',
|
||||||
gajim.interface.on_open_chat_window, contact, account)
|
gajim.interface.on_open_chat_window, contact, account)
|
||||||
if contact.supports(NS_FILE):
|
if contact.supports(NS_FILE) or contact.supports(NS_JINGLE_FILE_TRANSFER):
|
||||||
send_file_menuitem.set_sensitive(True)
|
send_file_menuitem.set_sensitive(True)
|
||||||
send_file_menuitem.connect('activate',
|
send_file_menuitem.connect('activate',
|
||||||
roster.on_send_file_menuitem_activate, contact, account)
|
roster.on_send_file_menuitem_activate, contact, account)
|
||||||
|
|
Loading…
Reference in New Issue