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