author | nikita@nikita-lab |
Sat, 16 May 2009 22:59:02 +0200 | |
changeset 186 | 7aec70b9ca79 |
parent 57 | c91278dda166 |
child 212 | bbc0b169cdf0 |
permissions | -rw-r--r-- |
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
1 |
package com.beem.project.beem.jingle; |
8
1b063c2d1096
Begin work on FileSender class which will serve to send a file over Jingle
Da Risk <darisk972@gmail.com>
parents:
7
diff
changeset
|
2 |
|
12
c9ff263c29ad
Now the exchange of data work some times.
Da Risk <darisk972@gmail.com>
parents:
8
diff
changeset
|
3 |
import java.net.UnknownHostException; |
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
4 |
import java.util.ArrayList; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
5 |
import java.util.List; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
6 |
import org.jivesoftware.smack.ConnectionConfiguration; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
7 |
import org.jivesoftware.smack.XMPPConnection; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
8 |
import org.jivesoftware.smack.XMPPException; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
9 |
import org.jivesoftware.smackx.jingle.JingleManager; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
10 |
import org.jivesoftware.smackx.jingle.JingleSession; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
11 |
import org.jivesoftware.smackx.jingle.listeners.JingleSessionListener; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
12 |
import org.jivesoftware.smackx.jingle.media.JingleMediaManager; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
13 |
import org.jivesoftware.smackx.jingle.media.PayloadType; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
14 |
import org.jivesoftware.smackx.jingle.nat.BasicTransportManager; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
15 |
import org.jivesoftware.smackx.jingle.nat.TransportCandidate; |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
16 |
|
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
17 |
/** |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
18 |
* @author darisk |
13 | 19 |
* |
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
20 |
*/ |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
21 |
public class Caller { |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
22 |
|
13 | 23 |
private XMPPConnection con; |
24 |
private String login; |
|
25 |
private String password; |
|
26 |
private JingleManager jingleManager; |
|
27 |
private List<JingleMediaManager> mediaManagers; |
|
28 |
private JingleSession out; |
|
29 |
||
30 |
public Caller(final String login, final String pass, String server) { |
|
31 |
if (server == null || server.equals("")) |
|
32 |
server = "localhost"; |
|
33 |
//XMPPConnection.DEBUG_ENABLED = true; |
|
34 |
this.login = login; |
|
35 |
this.password = pass; |
|
36 |
ConnectionConfiguration conf = new ConnectionConfiguration(server); |
|
37 |
conf.setRosterLoadedAtLogin(false); |
|
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
38 |
|
13 | 39 |
con = new XMPPConnection(conf); |
40 |
try { |
|
41 |
con.connect(); |
|
42 |
con.login(this.login, this.password, "Caller"); |
|
43 |
initialize(); |
|
44 |
} catch (XMPPException e) { |
|
45 |
// TODO Auto-generated catch block |
|
46 |
System.err.println("Echec de la connexion au serveru"); |
|
47 |
e.printStackTrace(); |
|
48 |
} |
|
49 |
} |
|
50 |
||
51 |
public void call(final String destinataire) { |
|
52 |
try { |
|
53 |
out = jingleManager.createOutgoingJingleSession(destinataire); |
|
54 |
// TODO configure out avec addMediaSession et addNegociator |
|
55 |
out.addListener(new JingleSessionListener() { |
|
56 |
||
57 |
@Override |
|
58 |
public void sessionRedirected(final String redirection, |
|
59 |
final JingleSession jingleSession) { |
|
60 |
// TODO Auto-generated method stub |
|
61 |
} |
|
62 |
||
63 |
@Override |
|
64 |
public void sessionMediaReceived( |
|
65 |
final JingleSession jingleSession, |
|
66 |
final String participant) { |
|
67 |
// TODO Auto-generated method stub |
|
68 |
System.out.println("Session Media received from " |
|
69 |
+ participant); |
|
70 |
} |
|
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
71 |
|
13 | 72 |
@Override |
73 |
public void sessionEstablished(final PayloadType pt, |
|
74 |
final TransportCandidate remoteCandidate, |
|
75 |
final TransportCandidate localCandidate, |
|
76 |
final JingleSession jingleSession) { |
|
77 |
System.out.println("Session established"); |
|
186 | 78 |
//String name = localCandidate.getName(); |
13 | 79 |
String ip = localCandidate.getIp(); |
80 |
int port = localCandidate.getPort(); |
|
81 |
System.out |
|
82 |
.println("Session established waiting connection on " |
|
83 |
+ ip + ":" + port); |
|
84 |
try { |
|
85 |
try { |
|
86 |
FileSender fs = new FileSender(ip, port, |
|
87 |
"/tmp/img.jpeg"); |
|
88 |
fs.start(); |
|
89 |
fs.join(); |
|
90 |
System.out.println("End of transfer"); |
|
91 |
} finally { |
|
92 |
jingleSession.terminate(); |
|
93 |
} |
|
94 |
} catch (UnknownHostException e) { |
|
95 |
System.err.println("Can't create server"); |
|
96 |
} catch (InterruptedException e) { |
|
97 |
} catch (XMPPException e) { |
|
98 |
System.err.println("Probably lost the connection"); |
|
99 |
e.printStackTrace(); |
|
100 |
} |
|
101 |
} |
|
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
102 |
|
13 | 103 |
@Override |
104 |
public void sessionDeclined(final String reason, |
|
105 |
final JingleSession jingleSession) { |
|
106 |
System.out.println("Session " |
|
107 |
+ jingleSession.getResponder() |
|
108 |
+ "declined because " + reason); |
|
109 |
} |
|
110 |
||
111 |
@Override |
|
112 |
public void sessionClosedOnError(final XMPPException e, |
|
113 |
final JingleSession jingleSession) { |
|
114 |
System.out |
|
115 |
.println("Session " + jingleSession.getResponder() |
|
116 |
+ " closed on error"); |
|
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
117 |
|
13 | 118 |
} |
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
119 |
|
13 | 120 |
@Override |
121 |
public void sessionClosed(final String reason, |
|
122 |
final JingleSession jingleSession) { |
|
123 |
System.out.println("Session " |
|
124 |
+ jingleSession.getResponder() + "closed because " |
|
125 |
+ reason); |
|
126 |
} |
|
127 |
}); |
|
128 |
out.startOutgoing(); |
|
129 |
||
130 |
} catch (XMPPException e) { |
|
131 |
// TODO Auto-generated catch block |
|
132 |
e.printStackTrace(); |
|
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
133 |
} |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
134 |
|
13 | 135 |
} |
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
136 |
|
13 | 137 |
private void initialize() { |
138 |
mediaManagers = new ArrayList<JingleMediaManager>(); |
|
139 |
mediaManagers.add(new SenderMediaManager(new BasicTransportManager())); |
|
140 |
JingleManager.setJingleServiceEnabled(); |
|
141 |
jingleManager = new JingleManager(con, mediaManagers); |
|
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
142 |
|
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
143 |
} |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
144 |
|
13 | 145 |
/** |
146 |
* @param args |
|
147 |
* Program args |
|
148 |
* @throws InterruptedException |
|
149 |
* exception |
|
150 |
*/ |
|
151 |
public static void main(final String[] args) throws InterruptedException { |
|
152 |
if (args.length < 3) { |
|
153 |
System.err.println("Not enough parameters"); |
|
154 |
System.err.println("Usage : Caller user password server jidtocall"); |
|
155 |
} |
|
156 |
Caller test = new Caller(args[0], args[1], args[2]); |
|
157 |
test.call("test2@nikita-rack/TEST"); |
|
158 |
Thread.sleep(60000); |
|
7
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
159 |
} |
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
160 |
|
c2941cee7327
Ajout de programme qui peuvent s'echanger des donnees jingle et negocier une
Da Risk <darisk972@gmail.com>
parents:
diff
changeset
|
161 |
} |