logger.error("Error getting dialog", e);
}
}
// Get activity context from factory
ActivityContextInterface sipACI = getSipActivityContextInterfaceFactory()
.getActivityContextInterface(dialog);
ActivityContextInterface clientSipACI = getSipActivityContextInterfaceFactory()
.getActivityContextInterface(ct);
if (logger.isDebugEnabled()) {
logger
.debug("Obtained dialog in onThirdPCCTriggerEvent : callId = "
+ dialog.getCallId().getCallId());
}
dialog.terminateOnBye(true);
calleeSession.setDialog(dialog);
sa.setCalleeSession(calleeSession);
/**
* Actually callerSession is not required for this example and clean
* up is needed
*/
Session callerSession = new Session();
// Create a new caller address from caller URI specified in the
// event (the real caller address) since we need this in the next
// INVITE.
callerAddress = getSipUtils().convertURIToAddress(callerSip);
callerSession.setSipAddress(callerAddress);
// Since we don't have the client transaction for the caller yet,
// just set the to be canceled client transaction to null.
callerSession.setToBeCancelledClientTransaction(null);
sa.setCallerSession(callerSession);
// put the callId for the callee dialog in the cache
getCacheUtility().put(calleeCallId, sa);
ChildRelation relation = getCallControlSbbChild();
// Create child SBB
CallControlSbbLocalObject child = (CallControlSbbLocalObject) relation
.create();
setChildSbbLocalObject(child);
child.setParent(getSbbContext().getSbbLocalObject());
child.setCustomEvent(event);
// Attach child SBB to the activity context
sipACI.attach(child);
clientSipACI.attach(child);
sipACI.attach(this.getSbbContext().getSbbLocalObject());
// Send the INVITE request
ct.sendRequest();
} catch (ParseException parExc) {