I'm trying to understand the Object Model with respect to how it models an incoming call and the chain of hops that it goes through to reach its final destination. Extensions may have forwarding rules in place so the call may hop a few times. Moreover, in the case where the call is passed to a Ring Group then the RG will decide the destination at that time. I want to use the CFD to change the status of the final destination extension to DND as soon as it starts to ring or is answered. One approach seems to be to use the session.callid variable (provided by CFD) and pass that to a 'LaunchExternalScript' component as a parameter value. If session.callid is the same as ActiveConnection.CallID then I could use that as a key to find the set of ActiveConnection objects that relate to the call. It looks like I can identify the object that relates to the final destination by using the ActiveConnection.Status flag (value 2 indicates ringing and value 3 indicates connection 'established'). However the explanations in the Object Model Help for the ConnectionStatus Enumeration are confusing me. They mention 'other participant' and 'owner object' but what are these? Do they relate back to ActiveConnection.DN somehow? It looks like ActiveConnection.DN is only part of the story and ActiveConnection.InternalParty is another. It would be useful to have 2 worked examples showing what objects the OM holds in the these cases:- a) where an incoming call is taken by the CFD which transfers it to a Ring Group with 2 Extensions, the first Extension being unavailable so that the RG sends the call to the second one; b) where an incoming call is taken by the CFD which transfers it to Extension 'A' but Extension 'A' has a forwarding rule in place to send the call to Extension 'B'; My guess for (a) is:- Stage 1: CFD picks up call, so:- CFD.Session.CallID = X Stage 2: CFD transfers call to RG with virtual Extension no. 233:- ActiveConnections are:- ActiveConnection-A: - CallID = X - DN = DN of CFD ? - InternalParty = DN of RG - Status = DiallingActiveConnection-B: - CallID = X - DN = DN of RG ? - InternalParty = DN of First Extension - Status = Dialling Stage 3: RG gives up trying First Extension and tries Second Extension:- ActiveConnection-B: object is destroyed ActiveConnection-C: - CallID = X - DN = DN of RG - InternalParty = DN of Second Extension - Status = Dialling Stage 4: RG has success on Second Extension:- ActiveConnection-C: - CallID = X - DN = DN of RG - InternalParty = DN of Second Extension - Status = DiallingActiveConnection-D: - CallID = X - DN = DN of Second Extension - InternalParty = DN of RG - Status = Ringing Stage 5:Call is answered on Second Extension:- ActiveConnection-C: object is destroyed ActiveConnection-D: - CallID = X - DN = DN of Second Extension - InternalParty = DN of RG - Status = Connected Stage 6: Caller or Second Extension hangs up:- ActiveConnection-A: object is destroyed ActiveConnection-D: object is destroyed When is the value for ActiveConnection.OriginatedBy set? Just trying to work out how the OM works. Many thanks for your help. Regards, Stephen.