//FIXME 需要验证参数的有效性 ServerTransaction servTran =
(ServerTransaction)callerDialog.getApplicationData();
Response cancelResp;
try {
cancelResp = msgFactory.createResponse(response.getStatusCode(),
servTran.getRequest());
servTran.sendResponse(cancelResp);
}
catch (ParseException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (SipException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (InvalidArgumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} }
public void processTimeout(TimeoutEvent arg0)
{
// TODO Auto-generated method stub
System.out.println(\
}
public void processTransactionTerminated(TransactionTerminatedEvent arg0) {
// TODO Auto-generated method stub
System.out.println(\
arg0.getClientTransaction().getBranchId()
+ \
}
private static SipStack sipStack = null;
private static AddressFactory addressFactory = null;
private static MessageFactory msgFactory = null;
private static HeaderFactory headerFactory = null;
private static SipProvider sipProvider = null;
private void init()
{
SipFactory sipFactory = null;
sipFactory = SipFactory.getInstance();
if (null == sipFactory)
{
System.out.println(\
return;
}
sipFactory.setPathName(\ Properties properties = new Properties();
properties.setProperty(\ // You need 16 for logging traces. 32 for debug + traces. // Your code will limp at 32 but it is best for debugging. properties.setProperty(\
properties.setProperty(\
\
properties.setProperty(\
\
try {
sipStack = sipFactory.createSipStack(properties);
}
catch (PeerUnavailableException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return;
} try {
headerFactory = sipFactory.createHeaderFactory(); addressFactory = sipFactory.createAddressFactory(); msgFactory = sipFactory.createMessageFactory();
ListeningPoint lp = sipStack.createListeningPoint(\
5060, \ SipPhone listener = this;
sipProvider = sipStack.createSipProvider(lp);
System.out.println(\
sipProvider.addSipListener(listener);
}
catch (Exception ex)
{
ex.printStackTrace();
return;
} } /** * 程序入口 * @param args
*/ public static void main(String []args) { new SipPhone().init(); } }