I had same problem, I investigated the stanza and solved it this way.
Many people use «/Smack» or «/Resource» as resource part in jid, but that can be done another way.
Resource path is changing with every presence changed of user. Lets say we want to send image to this user:
«user1@mydomain»
You must add «/Resource» part to this jid and it become this:
user1@mydomain/Resource
But /Resource path is changing with presence so you must follow every presence change to update resource path.
Best way is to get user presence is in roster listener and in presencheChanged() method you get last user resource part like this:
Roster roster=getRoster();
roster.addRosterListener(new RosterListener() {
@Override
public void entriesAdded(Collection<Jid> addresses) {
Log.d("entriesAdded", "ug");
context.sendBroadcast(new Intent("ENTRIES_ADDED"));
}
@Override
public void entriesUpdated(Collection<Jid> addresses) {
Log.d("entriesUpdated", "ug");
}
@Override
public void entriesDeleted(Collection<Jid> addresses) {
Log.d("entriesDeleted", "ug");
}
@Override
public void presenceChanged(Presence presence) {
Log.d("presenceChanged", "ug");
//Resource from presence
String resource = presence.getFrom().getResourceOrEmpty().toString();
//Update resource part for user in DB or preferences
//...
}
});
}
Resource string will be some generated string like «6u1613j3kv» and jid will become:
user1@mydomain/6u1613j3kv
That means that you must create your outgoing transfer like this:
EntityFullJid jid = JidCreate.entityFullFrom("user1@mydomain/6u1613j3kv");
OutgoingFileTransfer transfer = manager.createOutgoingFileTransfer(jid)
transfer.sendFile(new File("DirectoryPath"), "Description");
And that is how i have solved my problem with file transfer on smack and Openfire.
In your case jid is destination.
Also to mention you must add following properties in your Openfire server:
xmpp.proxy.enabled - true
xmpp.proxy.externalip - MY_IP_ADDRESS
xmpp.proxy.port - 7777
Just to mention, I am using Openfire 4.0.2 and Smack 4.2.2.
Also this can be configured the easy way, just set the resource on
XMPPTCPConnectionConfiguration.Builder .
like
XMPPTCPConnectionConfiguration.Builder configurationBuilder =
XMPPTCPConnectionConfiguration.builder();
configurationBuilder.setResource("yourResourceName");
- Печать
Страницы: [1] 2 Все Вниз
Тема: Ubuntu 12.04 + OpenFire+Iptables не работает передача файлов. (Прочитано 5028 раз)
0 Пользователей и 1 Гость просматривают эту тему.
kac
Настроил в ubuntu openfire. Все отлично работает но не работает передача файлов. Правила прописал в iptables
при подключению к ssh и при команде iptables -L выдает
почему не работает передача файлов между клиентами?
kac
kac
artem.ultra
у меня тоже передача файлов не работает между клиентами, которые находятся в одной сети.
iptables вобще без правил, тазик локальный.
решили как то эту проблему?
kac
еще не разобрался! пока перенес эту проблему на другой план!но чат работает прекрасно!все другие молчат
artem.ultra
у меня работает при том условии, что оба клиента с двух сторон используют клиент Spark
kac
у меня все клиенты используют Spark!!! и эффекта 0.
kac
artem.ultra
у меня как то не понятно, по сети файлы гоняет раз через раз
вы обновлялись на 3.8.0?
kac
artem.ultra
могли бы описать в кратце как обновлялись?
а то мне сцыкотно как то… весь корпоративный сектор в ней висит
Lasovchik
Извиняюсь что залажу в тему, но суть в следующем: установил 3.8.0 localhost:9090 не заходит. Куда копать?
Chain INPUT (policy ACCEPT)
target prot opt source destination
DROP tcp — anywhere anywhere tcp dpt:netbios-ssn
DROP tcp — anywhere anywhere tcp dpt:1723
ACCEPT tcp — anywhere anywhere tcp dpt:9090
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
« Последнее редактирование: 19 Февраля 2013, 19:39:03 от Lasovchik »
artem.ultra
Lasovchik
Апач стоит?
Зайди по ip
Все стоит и прекрасно работает. И Апач и мускул и пхп
artem.ultra
Тогда навсего у тебя openfire не стартует.
Смотри наличие логов.
Так же не забывай про надичие java
- Печать
Страницы: [1] 2 Все Вверх
-
May 25 2009, 17:28
Всем привет!
Такая проблема, в локалке установлен Openfire 3.6.3. Клиент Pandion. Все нормально работает, сообщения и файлы отправляются нормально. Но вот проблема с машинами, которые соединяться с сервером через интернет. Сообщения они могут передавать, а вот с файлами беда. Не передаются. У них тоже стоит Pandion. Пробовал psi тоже самое. На интернет шлюзе, за которым находится сервер с openfire, порты 7777 открыты.
Подскажите, как это решить можно?
Loading
Ignite Realtime
powered by Jive Software
- Home
- Projects
- Downloads
- Community
- Fans
- Support
- About
Проблема. Не удается получить файл, отправленный в приложение для Android через XMPP и OpenFire Server. Однако я могу успешно отправить файл. Я использую asmack jar asmack-jse-buddycloud-2010.12.11.jar
Код:
connConfig = new ConnectionConfiguration("beta.myCompany.co.uk", 5222);
connConfig.setSASLAuthenticationEnabled(true);
try {
connect("username", "password");
} catch (Exception e) {
e.printStackTrace();
}
ServiceDiscoveryManager sdm = ServiceDiscoveryManager.getInstanceFor(connection);
if(sdm == null)
sdm = new ServiceDiscoveryManager(connection);
fileTransferManager = new FileTransferManager(connection);
FileTransferNegotiator.setServiceEnabled(connection, true);
fileTransferManager.addFileTransferListener(new FileTransferListener() {
@Override
public void fileTransferRequest(FileTransferRequest request) {
IncomingFileTransfer transfer = request.accept();
try {
FileOutputStream fos = openFileOutput(request.getFileName(), Context.MODE_PRIVATE);
InputStream stream = transfer.recieveFile();//THIS FAILS!
fos.write(IOUtils.toByteArray(stream));
fos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Ошибка (если файл отправлен через Spark):
Ошибка при выполнении: — вызвано: java.util.concurrent.ExecutionException: ответа от файла нет. инициатор передачи:
Ошибка (если файл отправлен через Adium):
java.util.concurrent.ExecutionException: не удалось установить сокет с любым предоставленным хостом: item-not-found (404) Не удалось установить сокет с любым предоставленным хостом
Ошибка (если файл отправлен через другой экземпляр моего приложения):
Ошибка при выполнении: — вызвано: java.util.concurrent.ExecutionException: — вызвано: Нет ответа от удаленного клиента:
Мои журналы: (При попытке получить файл из Spark)
Похоже, что я ОТПРАВЛЯЕТ эту ошибку! (Не получает его). Почему это должно быть?
> 05-01 12:49:36.013: I/System.out(1000): 12:49:35 PM SENT (1093411736):
> <iq id="791-6222" to="beta.myCompany.co.uk"
> from="[email protected]/BAM-1918973529" type="error"><error
> code="501" type="CANCEL"><feature-not-implemented
> xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
Дополнительные журналы:
05-01 14:46:06.133: I/System.out(1370): 02:46:06 PM RCV (1093401112): <iq id="eRi5A-72" to="[email protected]/BAM-1755858011" from="[email protected]/Spark 2.6.3" type="set"><si xmlns="http://jabber.org/protocol/si" id="jsi_5991130279184702850" profile="http://jabber.org/protocol/si/profile/file-transfer"><file xmlns="http://jabber.org/protocol/si/profile/file-transfer" name="Test.rtf" size="318"><desc>Sending file</desc></file><feature xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="form"><field var="stream-method" type="list-single"><option><value>http://jabber.org/protocol/bytestreams</value></option><option><value>http://jabber.org/protocol/ibb</value></option></field></x></feature></si></iq>
05-01 14:46:08.283: I/System.out(1370): 02:46:08 PM SENT (1093401112): <iq id="eRi5A-72" to="[email protected]/Spark 2.6.3" from="[email protected]/BAM-1755858011" type="result"><si xmlns="http://jabber.org/protocol/si"><feature xmlns="http://jabber.org/protocol/feature-neg"><x xmlns="jabber:x:data" type="submit"><field var="stream-method"><value>http://jabber.org/protocol/bytestreams</value></field></x></feature></si></iq>
05-01 14:46:08.312: I/System.out(1370): 02:46:08 PM RCV (1093401112): <iq id="eRi5A-73" to="[email protected]/BAM-1755858011" type="get" from="[email protected]/Spark 2.6.3"><query xmlns="http://jabber.org/protocol/disco#info"/></iq>
05-01 14:46:14.352: W/System.err(1370): Error in execution:
05-01 14:46:14.352: W/System.err(1370): -- caused by: java.util.concurrent.ExecutionException: No response from file transfer initiator:[
[ERROR LOG IS HERE]
05-01 14:46:14.732: I/System.out(1370): 02:46:14 PM SENT (1093401112): <iq id="eRi5A-73" to="[email protected]/Spark 2.6.3" type="result"><query xmlns="http://jabber.org/protocol/disco#info"><identity category="client" name="Smack" type="pc"/><feature var="http://jabber.org/protocol/caps"/><feature var="http://jabber.org/protocol/bytestreams"/><feature var="http://jabber.org/protocol/si/profile/file-transfer"/><feature var="http://jabber.org/protocol/si"/><feature var="http://jabber.org/protocol/ibb"/></query></iq>
05-01 14:46:14.773: I/System.out(1370): 02:46:14 PM RCV (1093401112): <iq id="eRi5A-77" to="[email protected]/BAM-1755858011" type="set" from="[email protected]/Spark 2.6.3"><query xmlns="http://jabber.org/protocol/bytestreams" sid="jsi_5991130279184702850" mode="tcp"><streamhost jid="[email protected]/Spark 2.6.3" host="10.95.104.25" port="7777"/><streamhost jid="proxy.beta.myCompany.co.uk" host="127.0.1.1" port="7777"/></query></iq>
05-01 14:46:29.783: I/System.out(1370): 02:46:29 PM RCV (1093401112): <iq type="get" id="537-7113" from="beta.myCompany.co.uk" to="[email protected]/BAM-1755858011"><ping xmlns="urn:xmpp:ping"/></iq>
05-01 14:46:29.843: I/System.out(1370): 02:46:29 PM SENT (1093401112): <iq id="537-7113" to="beta.myCompany.co.uk" from="[email protected]/BAM-1755858011" type="error"><error code="501" type="CANCEL"><feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
Модератор: Bizdelnick
-
FlySnake
- Сообщения: 992
- ОС: openSUSE
- Контактная информация:
Openfire за роутером. Не принимает/отправляет сообщения
Поставил сервер Openfire 3.6.3. По первому найденому мануалу настроил (несколько кликов мыши в веб-интерфейсе). IP у меня внешний статический и есть доменное имя, которое указал при настройке в графе «Server name». Базу встроенную использовал. После настройки добавил юзера и сразу же без проблем удалось подключится с локалхоста и другой машины в локальной сети. Между локальными машинами сообщения ходят нормально. Юзеры прямо через клиент добавляются и всё красиво. Но за роутер сообщения не проходят, и до меня из внешки не приходят, причем в зависимости от клиента либо ничего не говоря, либо ругаясь «просто какой-то ошибкой» без пояснений. При попытке подключится к чату после долгих раздумий Pidgin выдаёт 404. При этом подключится я могу и с внешки (с работы подключался нормально). На роутере (D-Link 2540) пробросил внутрь все порты как написано:
All addresses 5222 Client to Server The standard port for clients to connect to the server. Connections may or may not be encrypted. You can update the security settings for this port.
All addresses 5223 Client to Server The port used for clients to connect to the server using the old SSL method. The old SSL method is not an XMPP standard method and will be deprecated in the future. You can update the security settings for this port.
All addresses 9090 Admin Console The port used for unsecured Admin Console access.
All addresses 7777 File Transfer Proxy The port used for the proxy service that allows file transfers to occur between two entities on the XMPP network.
All addresses 7070 HTTP Binding The port used for unsecured HTTP client connections.
All addresses 7443 HTTP Binding The port used for secured HTTP client connections.
All addresses 3478 & 3479 STUN Service The port used for the service that ensures connectivity between entities when behind a NAT.
All addresses 5229 Flash Cross Domain Service that allows Flash clients connect to other hostnames and ports.
В фаерволе эти порты разумеется открыл.
Дистр — openSUSE11.0. Сам Openfire пробовал из репозитория и где-то из гугла rpm-ку — результат одинаковый в обоих случаях.
С доменным именем всё в порядке http://flysnake.org
Нормального мануала по работе с сервером Jabber я не нашел. Прошу наставления в правильную сторону.
-
rm_
- Сообщения: 3340
- Статус: It’s the GNU Age
- ОС: Debian
- Контактная информация:
Re: Openfire за роутером. Не принимает/отправляет сообщения
Сообщение
rm_ » 16.02.2009 00:39
Порт 5269 проброшен?
ЗЫ: да, по более внимательному прочтению могу сказать, что скорее всего нужно добавить разрешение на входящие коннекты к серверу на порт 5269. Это порт для общения серверов между собою (S2S, Server-to-Server).
-
landgraf
- Сообщения: 2140
- Статус: *бунту ненавистник
- ОС: linux
- Контактная информация:
I’ve just set up Openfire last week, and I can’t seem to get file transfers to work outside of our network. Users (using Spark) inside our local network can transfer files back and forth with no problem, but if one or both of the users is outside the network, the transfer hangs at «Negotiating connection stream, please wait…».
I have File Transfer Proxy turned on, port 7777 is open and forwarded (I’ve tested this with telnet), and my SSL certs are in place and working. I’m not sure how to trouble shoot this, or if there is something obvious that I’ve missed.
Any suggestions are appreciated.