Are you invoking Extension.Save() after you make this change?
i use this code (you can see extensiont save at the end):
PhoneSystem ps = PhoneSystem.Root;
Extension destExt=null;
// get Forward destination Extension with Nunber "5755"
foreach (Extension ext in ps.GetTenants()[0].GetExtensions())
{
if (ext.Number == "5755")
{
destExt = ext;
}
}
// update Forward Internal for Extensione Number "5851" if External Calls - PhoneNotRegistered
foreach (Extension a in ps.GetTenants()[0].GetExtensions())
{
if (a.Number == "5851") {
a.OutboundCallerID = "0462222";
foreach (ExtensionRule fr in a.CurrentProfile.ForwardingRules)
{
string ct = fr.Conditions.CallType.Description;
string tp = fr.Conditions.Condition.Type.ToString();
if (ct == "External Calls Only")
{
if (tp == "PhoneNotRegistered")
{
fr.Forward.Internal = destExt;
}
}
}
a.Save();
}
}