1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179
|
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Properties;
import javax.sip.ClientTransaction;
import javax.sip.Dialog;
import javax.sip.DialogTerminatedEvent;
import javax.sip.IOExceptionEvent;
import javax.sip.InvalidArgumentException;
import javax.sip.PeerUnavailableException;
import javax.sip.RequestEvent;
import javax.sip.ResponseEvent;
import javax.sip.SipFactory;
import javax.sip.SipListener;
import javax.sip.SipProvider;
import javax.sip.SipStack;
import javax.sip.TimeoutEvent;
import javax.sip.TransactionTerminatedEvent;
import javax.sip.address.Address;
import javax.sip.address.AddressFactory;
import javax.sip.address.SipURI;
import javax.sip.header.CSeqHeader;
import javax.sip.header.CallIdHeader;
import javax.sip.header.ContactHeader;
import javax.sip.header.FromHeader;
import javax.sip.header.HeaderFactory;
import javax.sip.header.MaxForwardsHeader;
import javax.sip.header.ToHeader;
import javax.sip.header.ViaHeader;
import javax.sip.message.MessageFactory;
import javax.sip.message.Request;
public class UAC implements SipListener{
private SipFactory sipFactory;
private static SipStack sipStack;
private static SipProvider sipProvider;
private static AddressFactory addressFactory;
private static MessageFactory messageFactory;
private static HeaderFactory headerFactory;
private ContactHeader contactHeader;
private ClientTransaction inviteTid;
private Dialog dialog;
private static String IP;
private static String transport = "udp";
private String USER_AUTH="862088805";
private String PASS_AUTH="36flip";
private static String realm="voip.brujula.net";
private String monPseudo="862088805";
static long regco = 1;
public void init() throws ParseException, InvalidArgumentException {
sipFactory = SipFactory.getInstance();
sipFactory.setPathName("gov.nist");
Properties properties = new Properties();
String peerHostPort = "65.110.41.100:5070";
properties.setProperty("javax.sip.OUTBOUND_PROXY", peerHostPort + "/"+ transport);
properties.setProperty("javax.sip.STACK_NAME", "Vincent");
properties.setProperty("gov.nist.javax.sip.CACHE_CLIENT_CONNECTIONS","false");
try {
// Create SipStack object
sipStack = sipFactory.createSipStack(properties);
System.out.println("createSipStack " + sipStack);
} catch (PeerUnavailableException e) {
// could not find
// gov.nist.jain.protocol.ip.sip.SipStackImpl
// in the classpath
e.printStackTrace();
System.err.println(e.getMessage());
System.exit(0);
}
}
public static Request creerRegister() throws ParseException, InvalidArgumentException{
String fromName = "862088805";
String fromSipAddress = "voip.brujula.net";
String fromDisplayName = "862088805";
String toSipAddress = "voip.brujula.net";
String toUser = "862088805";
String toDisplayName = "Vincent";
//FROM HEADER
SipURI fromAddress = addressFactory.createSipURI(fromName,fromSipAddress);
Address fromNameAddress = addressFactory.createAddress(fromAddress);
fromNameAddress.setDisplayName(fromDisplayName);
FromHeader fromHeader = headerFactory.createFromHeader(fromNameAddress,"123408805");
//TO HEADER
SipURI toAddress = addressFactory.createSipURI(toUser, toSipAddress);
Address toNameAddress = addressFactory.createAddress(toAddress);
toNameAddress.setDisplayName(toDisplayName);
ToHeader toHeader = headerFactory.createToHeader(toNameAddress, null);
// PROXY URI
SipURI requestURI = addressFactory.createSipURI(null, realm);
// VIA HEADER
ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
ViaHeader viaHeader = headerFactory.createViaHeader(IP, sipProvider.getListeningPoint(transport).getPort(), transport, null);
viaHeaders.add(viaHeader);
// CALLID HEADER
CallIdHeader callIdHeader;
callIdHeader = sipProvider.getNewCallId();
// CSEQ HEADER
CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(regco,Request.REGISTER);
// MAXFORWARDS HEADER
MaxForwardsHeader maxForwards = headerFactory.createMaxForwardsHeader(99);
// CREATE THE REQUEST
Request request = messageFactory.createRequest(requestURI,
Request.REGISTER, callIdHeader, cSeqHeader, fromHeader,
toHeader, viaHeaders, maxForwards);
return request;
}
public static void main(String args[]) throws ParseException, InvalidArgumentException {
new UAC().init();
Request RequestRegister = creerRegister();
}
@Override
public void processDialogTerminated(DialogTerminatedEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void processIOException(IOExceptionEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void processRequest(RequestEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void processResponse(ResponseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void processTimeout(TimeoutEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void processTransactionTerminated(TransactionTerminatedEvent arg0) {
// TODO Auto-generated method stub
}
} |
Partager