1,394
社区成员
发帖
与我相关
我的任务
分享
*/
public void sendMessage(String to, String message) throws ParseException,
InvalidArgumentException, SipException {
SipURI from = addressFactory.createSipURI(getUsername(), getHost()
+ ":" + getPort());
Address fromNameAddress = addressFactory.createAddress(from);
fromNameAddress.setDisplayName(getUsername());
FromHeader fromHeader = headerFactory.createFromHeader(fromNameAddress,
"textclientv1.0");
String username = to.substring(to.indexOf(":") + 1, to.indexOf("@"));
String address = to.substring(to.indexOf("@") + 1);
SipURI toAddress = addressFactory.createSipURI(username, address);
Address toNameAddress = addressFactory.createAddress(toAddress);
toNameAddress.setDisplayName(username);
ToHeader toHeader = headerFactory.createToHeader(toNameAddress, null);
SipURI requestURI = addressFactory.createSipURI(username, address);
requestURI.setTransportParam("udp");
ArrayList viaHeaders = new ArrayList();
ViaHeader viaHeader = headerFactory.createViaHeader(getHost(),
getPort(), "udp", null);
viaHeaders.add(viaHeader);
CallIdHeader callIdHeader = sipProvider.getNewCallId();
CSeqHeader cSeqHeader = headerFactory.createCSeqHeader(1,
Request.MESSAGE);
MaxForwardsHeader maxForwards = headerFactory
.createMaxForwardsHeader(70);
Request request = messageFactory.createRequest(requestURI,
Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader,
toHeader, viaHeaders, maxForwards);
SipURI contactURI = addressFactory.createSipURI(getUsername(),
getHost());
contactURI.setPort(getPort());
Address contactAddress = addressFactory.createAddress(contactURI);
contactAddress.setDisplayName(getUsername());
ContactHeader contactHeader = headerFactory
.createContactHeader(contactAddress);
request.addHeader(contactHeader);
ContentTypeHeader contentTypeHeader = headerFactory
.createContentTypeHeader("text", "plain");
request.setContent(message, contentTypeHeader);
sipProvider.sendRequest(request);
}