Search the chain of super objects that contain the object specified by objecthandle. This will return the first (closest) ancestor that has a handle associated with it. Objects that no longer have handles, due to SippObjectUnref, will not be returned. The search will continue up the chain. If no object with a handle is found, the empty string is returned. The WORLD object will not be returned as an ancestor.
The ancestor relationship is established by SippObjectAddSubobj. If an object is added as a sub-object of multiple objects, only the first object is recorded as the parent. Addition to subsequent objects, without first subtracting from the original parent, will only follow the first ancestor chain.
Objects created by SippObjectInstance can also cause confusing results if they are all not subobjects of the same object. This is dues to the subobject of the objects that was duplicated still being linked back to the original object. In practice, this is not usually a problem, since creating instances objects is normally using in building to compound objects. Thus any instance sub-object that has its ancestors traced will lead to the top of the compound object.