Solved Can't make changes to T46G after 15.5 update

Status
Not open for further replies.

GDInc

Customer
Joined
Apr 9, 2018
Messages
30
Reaction score
6
We recently updated to 15.5 and now, for some reason, we cannot make any changes to our Yealink T46G phones without getting an error. This includes forward, VM, options, etc... Anytime we try to make a change, we get the error I've pasted at the bottom. To my knowledge (I'm still new to this phone system), we haven't used any custom templates. Any ideas on what to try?

System.NullReferenceException: Object reference not set to an instance of an object.
at TCX.Configuration.Templates.LocalPhoneDevice.SetDynamicOptionValue(BaseOption option, Object value)
at ConfigurationManagementModel.CfgTemplateInfo.SetPhoneVlanInfo(PhoneDeviceVlanType type, LocalPhoneDevice phoneDevice, PhoneDeviceVlanInfo info)
at ConfigurationManagementModel.CfgTemplateInfo.SaveInfoToPhoneDevice(PhoneDeviceInfo info, PhoneDevice phoneDevice, Extension extension)
at ConfigurationManagementModel.PhoneDeviceInfoExtension.SetPhoneDeviceInfos(Extension ex, PhoneDeviceInfo[] infos, ICfgTemplateInfoProvider templateInfoProvider)
at ConfigurationManagementModel.CfgExtensionEditor.Serialize_AfterSerialize(Object sender, SerializeEventArgs e)
at ConfigurationManagementModel.PropertySerializer.FireAfterSerialize(ICfgItemInternal cfgItem, Boolean save)
at ConfigurationManagementModel.PropertySerializer.Serialize(ICfgItemInternal cfgItem, SerializeParameters serializeParameters)
at ConfigurationManagementModel.CfgItemBase.Save()
at ManagementConsoleJS.Services.Editor.Save()
at ManagementConsoleJS.Services.EditorService.SaveActiveObject(Int32 id)
at ManagementConsoleJS.Controllers.EditController.Save(Int32 id)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__10.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at Microsoft.AspNetCore.Builder.RouterMiddleware.d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at ManagementConsoleJS.Middleware.ExceptionWrapperMiddleware.d__3.MoveNext()
 
Hi GDInc,

Please outline what changes you are trying to make - are we talking manual changes in the phones themselves or on 3CX (such as a BLF change for example) ?

What firmware are you running on these Yealinks also ? and please outline what Service pack on 3CX you have on this system ? The T46G's are EOL phones now and have been replaced by the "S" variant so maybe sensitive to firmware.
 
Hi GDInc,

Please outline what changes you are trying to make - are we talking manual changes in the phones themselves or on 3CX (such as a BLF change for example) ?

What firmware are you running on these Yealinks also ? and please outline what Service pack on 3CX you have on this system ? The T46G's are EOL phones now and have been replaced by the "S" variant so maybe sensitive to firmware.

Changes are on the 3CX web interface.
Firmware 28.82.0.20 on the Yealinks
Service Pack for 3CX: 15.5.10244.4
 
Have you tried removing the phone from the provisioning tab, and re-adding it?
I have a 48g online using standard template without issue. Wouldn't expect the 46 to be much different.
 
Well, like I said, I'm new to the system. :)

There were custom templates I didn't know about. I removed all of the templates in C:\ProgramsData, restarted the management console, and all is good now.
 
  • Like
Reactions: YiannisH_3CX
I would (as a test) since you are running the very latest version of 3CX which supports this feature try going to: Settings >> Phone/client options.

And enabling the feature "Allow alternative firmwares (i.e. localized/3rd party firmware other default 3CX supported firmware)"

Re-adding (as said by craigreilly) and/or recreating the extension also would be steps you could try.
 
OK fixed, ignore my last.

Just ensure that those custom templates weren't in place for a specific reason, and thus moving may remove a feature that they were created for.
 
Is there a way I can tell if a phone is using a custom template or not?

For the phones we had issues with, I looked under "Phone Provisioning" and "Your Phones" and it has "Yealink T46" listed. But, when I looked inside all of the .ph files, I didn't see any that say <name>Yealink T46</name>. The closest I found was <name>Yealink T46/T48</name>.
 
Yes, 3CX have made this very easy now. It should appear in your phones list in red text with custom template written on it.

Also under the extension itself >> Provisioning. It will tell you what template has been used here. I am assuming however that when these custom templates were created they were given a recognizable name so as to separate them from the standard templates in the system.

"YealinkT46G_Custom" for example.
 
That does make it very easy. Just to be safe, I copied all of the templates back in and restarted the management console. Luckily, it looks like just one 1 phone was using a template. I left that one template in, removed the rest, and restarted the console. Looks like we are all set now!

Thanks for the super quick help!!
 
  • Like
Reactions: craigreilly
Status
Not open for further replies.

Latest Posts

Forum statistics

Threads
111,885
Messages
589,545
Members
164,744
Latest member
johnblackwood1