Installation Niggles

Oct 27, 2010 at 8:08 AM

I'm quite interested in what Snomtastic can do, but I'm having a few issues getting a working install. I've got one remaining issue, but also a couple of notes for those who come after.

  1. If you're running on 64-bit Windows you may need to enable 32-bit apps in the 64-bit version of the .NET framework.
    http://lamahashim.blogspot.com/2009/11/enabling-iis-and-aspnet-32-bit-on-64.html
  2.  The install doco refers to a web.config file in \shfa.snomtastic.root that you need to update with your database login details. I could only find a release.config in that directory, but renamed and edited with DB details it seems to have done the job.
  3. The syntax for that line in the web.config took me a few tries. I finally settled on
    <add name="cnn" connectionString="Data Source=BACKEND\SNOMTASTIC;Initial Catalog=SnomTastic; User Id=STServer;Password=apassword;" providerName="System.Data.SqlClient"/>
    where Backend is the NetBIOS name of the box the database is running on, SNOMTASTIC is the name of the MSSQL instance, SnomTastic is the name of the database itself and STServer is the name of the SQL user I created in that instance. And no, apassword is not it's actual password =)
  4. Don't forget to set your SQL server to use mixed mode auth if you're using a SQL user rather than a windows user. If you're not sure auth is set up right, try logging in to SQL Management Studio with the account you've just created. If you can't get in, something's probably wrong.
  5. The Telerix bit you need is (I believe) RadControls for ASP.NET AJAX and you can get a trial version from:
     http://www.telerik.com/account/free-trials/trial-product-versions.aspx?pid=561

My problem is that I've gotten past all the little niggles and run into something I can't seem to fix. When I browse to the server and it redirects me to /admin/default.aspx I get the following error.

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Source Error:

Line 4:      <AjaxSettings>
Line 5:          <telerik:AjaxSetting AjaxControlID="pnlButtons">
Line 6:              <UpdatedControls>
Line 7:                  <telerik:AjaxUpdatedControl ControlID="pnlButtons" />
Line 8:                  <telerik:AjaxUpdatedControl ControlID="pnlBody" />


Source File: /admin/controls/ActionButtons.ascx    Line: 6

I think this may be because I'm using version 2010.2.929.20 of the Telerik Web.UI bits rather than 2010.1.415.35, but none of the 2010.1 builds are available from http://www.telerik.com/account/free-trials/trial-product-versions.aspx?pid=561 any more.

Do some of the Snomtastic application bits need to be recompiled against a more recent build of Telerik for me to get this going? Or have I got something else wrong?

 

Any help or suggestions would be greatly appreciated. =)

 

For the record, we're running OCS 2007 R2 side-by-side with a mixed NEC/Asterisk PBX setup. The sites running Asterisk have Snom handsets, but they're only signing in to the local Asterisk box as that's the only thing I could automate sufficiently. I'd love to have them sign in as the relevant OCS user as well, but having users go to the web interface of their desk phone every 3 months is impractical. This is where (I really hope) Snomtastic comes in.

Coordinator
Nov 3, 2010 at 6:00 AM


The correct Telerik DLL is now included in the server download.

As a workaround for the versioning problems of the ajax libraries you can copy the System.Web.Extensions.dll  version 1.0.61025.0 to the bin directory in the admin site. This can often resolve these kind of issues.

Nov 3, 2010 at 7:23 AM

Thanks Jamie, that'll make life a lot easier going forward.

One quick question - are you certain that's the right version of the Telerik DLL? I blew away my setup and started again fresh, now I'm getting the following error:



Parser Error

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load file or assembly 'Telerik.Web.UI, Version=2010.1.415.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Source Error:

Line 1:  <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ActionButtons.ascx.cs" Inherits="shfa.snomtastic.admin.controls.ActionButtons" %>
Line 2:  <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
Line 3:  <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server">


Source File: /admin/controls/ActionButtons.ascx    Line: 1

Assembly Load Trace: The following information can be helpful to determine why the assembly 'Telerik.Web.UI, Version=2010.1.415.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4' could not be loaded.

=== Pre-bind state information ===
LOG: User = IIS APPPOOL\Snomtastic
LOG: DisplayName = Telerik.Web.UI, Version=2010.1.415.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4
 (Fully-specified)
LOG: Appbase = file:///C:/inetpub/snomtastic/shfa.snomtastic.admin/
LOG: Initial PrivatePath = C:\inetpub\snomtastic\shfa.snomtastic.admin\bin
Calling assembly : shfa.snomtastic.admin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\inetpub\snomtastic\shfa.snomtastic.admin\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Post-policy reference: Telerik.Web.UI, Version=2010.1.415.35, Culture=neutral, PublicKeyToken=121fae78165ba3d4
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/admin/0922db95/21e8c414/Telerik.Web.UI.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/admin/0922db95/21e8c414/Telerik.Web.UI/Telerik.Web.UI.DLL.
LOG: Attempting download of new URL file:///C:/inetpub/snomtastic/shfa.snomtastic.admin/bin/Telerik.Web.UI.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.


Having a look at the Telerik.Web.UI.dll included in the server zip admin\bin folder, the file version is showing as 2009.2.826.35. Shouldn't that file be 2010.1.415.35?

Editor
Nov 5, 2010 at 12:52 AM

Same problem here.

It seems that the wrong  version was used when building the project. It's strange because when i look at the project sources, it  seems  that all is ok.

But i also saw that many many Telerik users have problems with assembly version.

Could you please provide us the right dll as we cannot download it anymore from Telerik (it seems to be too old) ?

 

Thanks in advance. BTW, SNOMtastic looks very promising.

Coordinator
Nov 5, 2010 at 6:01 AM

The download has been updated again to include the correct version of the Telerik library for this build.

I had accidentally included an older version of the dll from an ealier build.

I hope this will resolve the issues you have been having.

Editor
Nov 5, 2010 at 2:08 PM

Thank you, i can go one step further. But unfortunately, a new problem arises :-)

It seems that you need to distribute interop.activeds.dll too

Regards

Editor
Nov 5, 2010 at 2:56 PM

Ok, i manage to get it from elsewhere.

Last problem now :-) It seems that the getUserPhoneInfo function is not working, maybe because of a missing dependancy ?

Here is the error message (in French but quite explicit)

System.NullReferenceException: La r&#233;f&#233;rence d'objet n'est pas d&#233;finie &#224; une instance d'un objet.
   à shfa.snomtastic.data.security.adSecurity.GetUserBySID(String userSID)
   à shfa.snomtastic.root.services.user.GetUserPrincipalName(String userSID)
   à shfa.snomtastic.root.services.user.getUserPhoneInfo(String userSID)

 

Editor
Nov 5, 2010 at 5:28 PM

Sorry, this last one was my bad : i use a workstation not joined into a domain...

Next one. The password update from Snomtastic client doesn't seem to work : when i change my password from here, the phone reboot (no error in the log), but it can't log on to OCS. If i change my  password from the SNOM web interface, it works.

Any idea ?

Anyway, great job ! Congratulations

Coordinator
Nov 7, 2010 at 10:30 PM

sroux,

If, in the client, you go to help -> about and the username and ip address of the phone are present then all should be working OK.

To rule out the client entirely you can chage the password through the Web interface of snomtastic server.

We have seen issues with password updates via config with certain versions of the firmware on the Snom phones.

We are using snapshot_branch_8_2_2010_01_06_22_00_02_snom which has provided the most stable integration with Snomtastic.

Hope this helps.

Jamie.

Nov 8, 2010 at 1:12 AM
sroux wrote:

It seems that you need to distribute interop.activeds.dll too 

I'm having this problem too. I tried a couple of different copies of interop.activeds.dll from things like my DPM2010 install, but I'm getting versioning errors. The reading I've done suggests that interop.activeds.dll is project-specific and generated by the IDE when you generate the other assembies. I'm a sysadmin not a programmer, so I'm not entirely sure what most of what I've been reading means, but that would explain why other versions didn't seem to work =)

Jamie - just wanted to say I really appreciate all your help so far, and the original efforts to convince management to let you open source this project. If you could add the interop dll to the server download and re-upload, that would be fantastic.

Cheers,

Ryan

Editor
Nov 8, 2010 at 8:48 PM

Thanks for your help Jamie.

I use 8.5.4 firmware and maybe there is something new here ? I will try with an older one. But i can confirm you that i tried to change the password from the admin interface without luck.

About this point, could you explain me the real purpose of the password field in the user settings ? Maybe i'm dumb but the admin is not supposed to know the user password, right ?

I tried to see if the phone can get the password by using the .../phone/settings.aspx?mac=00041323C20F url in my explorer, and the field is empty : <user_pass config="Default" source="Phone" perm=" " idx="1" />

So i guess  this is part of the problem, no  ?

AccessCapital, i got mine (dll) from the Internet quite easily so i guess you should be able to do so. Be sure to type 1.0.0.0 version in Google.

 

 

 

Nov 9, 2010 at 1:26 AM
Edited Nov 10, 2010 at 3:48 AM

I'm still having no luck with the interop DLL. I've tried assorted DLL download sites that popped up in google, plus a few other sources of the file. Most recently Exchange 2010 and the Quest AD powershell tools, which do show the DLL version as 1.0.0.0. The error I'm getting is

 

Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Source Error:

 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Assembly Load Trace: The following information can be helpful to determine why the assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' could not be loaded.

=== Pre-bind state information ===
LOG: User = IIS APPPOOL\Snomtastic
LOG: DisplayName = Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/inetpub/snomtastic/shfa.snomtastic.phone/
LOG: Initial PrivatePath = C:\inetpub\snomtastic\shfa.snomtastic.phone\bin
Calling assembly : shfa.snomtastic.data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\inetpub\snomtastic\shfa.snomtastic.phone\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/phone/f00dddfc/dcb0feb9/Interop.ActiveDs.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/phone/f00dddfc/dcb0feb9/Interop.ActiveDs/Interop.ActiveDs.DLL.
LOG: Attempting download of new URL file:///C:/inetpub/snomtastic/shfa.snomtastic.phone/bin/Interop.ActiveDs.DLL.
WRN: Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.


Stack Trace:

[FileLoadException: Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
   shfa.snomtastic.data.common.GetDateFromLargeInteger(Object largeInteger) +0
   shfa.snomtastic.web.settings.SetUserInfo(Guid userId) +306
   shfa.snomtastic.web.settings.Page_Load(Object sender, EventArgs e) +446
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627



Version Information: Microsoft .NET Framework Version:2.0.50727.4952; ASP.NET Version:2.0.50727.4955 

As far as I can tell, that's saying I've got the wrong Interop.ActiveDs.DLL still.

Sroux - would you mind zipping up the one you're using and emailing it to accesscapitaladviers(at)gmail.com? I'm running 8.5.4 as well, so as soon as I get to the stage you're at I'll be able to confirm whether I'm getting the same error or not. Extra data points are always good.

Cheers,

Ryan

Editor
Nov 9, 2010 at 8:32 AM

Try this one, it works for me.

Good luck.

From: AccessCapital [mailto:notifications@codeplex.com]
Sent: mardi 9 novembre 2010 02:27
To: stephen_roux@hotmail.com
Subject: Re: Installation Niggles [snomtastic:232467]

From: AccessCapital

I'm still having no luck with the interop DLL. I've tried assorted DLL download sites that popped up in google, plus a few other sources of the file. Most recently Exchange 2010 and the Quest AD powershell tools, which do show the DLL version as 1.0.0.0. The error I'm getting is

Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.


Assembly Load Trace: The following information can be helpful to determine why the assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' could not be loaded.

=== Pre-bind state information ===
LOG: User = IIS APPPOOL\Snomtastic
LOG: DisplayName = Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = file:///C:/inetpub/snomtastic/shfa.snomtastic.phone/
LOG: Initial PrivatePath = C:\inetpub\snomtastic\shfa.snomtastic.phone\bin
Calling assembly : shfa.snomtastic.data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\inetpub\snomtastic\shfa.snomtastic.phone\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v2.0.50727\Aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/phone/f00dddfc/dcb0feb9/Interop.ActiveDs.DLL.
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/phone/f00dddfc/dcb0feb9/Interop.ActiveDs/Interop.ActiveDs.DLL.
LOG: Attempting download of new URL file:///C:/inetpub/snomtastic/shfa.snomtastic.phone/bin/Interop.ActiveDs.DLL.
WRN: Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.


Stack Trace:

[FileLoadException: Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
   shfa.snomtastic.data.common.GetDateFromLargeInteger(Object largeInteger) +0
   shfa.snomtastic.web.settings.SetUserInfo(Guid userId) +306
   shfa.snomtastic.web.settings.Page_Load(Object sender, EventArgs e) +446
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627


Version Information: Microsoft .NET Framework Version:2.0.50727.4952; ASP.NET Version:2.0.50727.4955

<!-- [FileLoadException]: Could not load file or assembly 'Interop.ActiveDs, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) at shfa.snomtastic.data.common.GetDateFromLargeInteger(Object largeInteger) at shfa.snomtastic.web.settings.SetUserInfo(Guid userId) at shfa.snomtastic.web.settings.Page_Load(Object sender, EventArgs e) at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) [HttpUnhandledException]: Exception of type 'System.Web.HttpUnhandledException' was thrown. at System.Web.UI.Page.HandleError(Exception e) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) at System.Web.UI.Page.ProcessRequest() at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) at System.Web.UI.Page.ProcessRequest(HttpContext context) at ASP.settings_aspx.ProcessRequest(HttpContext context) in c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\phone\f00dddfc\dcb0feb9\App_Web_d4rdfyf8.2.cs:line 0 at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) --><!-- This error page might contain sensitive information because ASP.NET is configured to show verbose error messages using <customErrors mode="Off"/>. Consider using <customErrors mode="On"/> or <customErrors mode="RemoteOnly"/> in production environments.-->

As far as I can tell, that's saying I've got the wrong Interop.ActiveDs.DLL still.

Sroux - would you mind zipping up the one you're using and emailing it to accesscapitaladviers(at)gmail.com? I'm running 8.5.4 as well, so as soon as I get to the stage you're

at I'll be able to confirm whether I'm getting the same error or not. Extra data points are always good.

Cheers,

Ryan

Read the full discussion online.

To add a post to this discussion, reply to this email (snomtastic@discussions.codeplex.com)

To start a new discussion for this project, email snomtastic@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on CodePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at CodePlex.com

Coordinator
Nov 9, 2010 at 10:59 PM

Third times the charm.

 I have updated the Snomtastic Server download to include the Interop.ActiveDs.dll. Hopefully this will resolve your issues.



 

Coordinator
Nov 9, 2010 at 11:17 PM

sroux: "... could you explain me the real purpose of the password field in the user settings ? Maybe i'm dumb but the admin is not supposed to know the user password, right ?"

In an ideal world the admin should not have access to a users password but there are scenarios where this functionality is required. 

We have several phones located in meeting rooms including Snom Meeting Point.

We still want the phones to login to AD and appear in our directory listings but there is no actual user to update the password.

If the phone firmware is updated or a reset is required we would prefer not to have to reset the password manually afterward, so in this instance we set the password through the admin tool directly.

It is also useful for ruling out client issues :)

 

In regard to the 8.5.4 firmware.

The reason I suggested the snapshot is that we ran that one for a good long while and it seemed to be very stable. We are running on 8.5.4 with no problems so far but we have not had it rolled out for long.

 

 

Nov 10, 2010 at 3:47 AM

OK, loads of progress! Thanks heaps for that DLL Jamie, sorted the IIS issues right out.

Phones are now talking to Snomtastic and grabbing settings, firmware updates are happening, I've found and fixed a bunch of things I had wrong in my configs, etc. I've even got Identity 2 signing into an Asterisk box with settings from Snomtastic. Identity 1 is getting populated with all our OCS server settings and usernames correctly, but passwords don't seem to be coming across.

When I reset a phone and it gets config fresh from Snomtastic, it's then failing to sign in to OCS. If I go into Identity 1 on the phone's web interface and re-type the password it does sign in, but seems to sign out again when the phone next refreshes its config from Snomtastic.

I'm also having trouble with the system tray client on the PC, which I assume is related. When I hit the About screen on the client it's showing my DOMAIN\Username correctly and the IP address of the phone assigned to me. I can use the Reboot phone button on the desktop client and the correct handset reboots. When I hit Check Password on the desktop client I get a pop-up that says Connection Error in the title bar and Service Unavailable in the body, with an OK button.

Am I right in thinking that the upload and download of user AD passwords is handled a little differently to all the other settings, and that's the bit which is breaking? Next question is, does the desktop client log anywhere? I've had a look in the even log, and while I do have a file called "Snomtastic Client-uccapi-0.uccapilog" in C:\Users\username\tracing, it's empty. Possibly worth noting at this point that we're running Win7 x64 on the desktops. Not sure if that's relevant.

I've also tried setting up one of our meeting room users that's OCS enabled in Snomtastic and assigning a handset to it. Because there's no PC involved I've just typed the AD password for the user into the Snomtastic admin web page. That also seems to be getting garbled by the time it reaches the handset. Again, overtyping the password in the Snom web interface fixes it temporarily.

If I wanted to double check that the database table in question was set up right and had the correct permissions, what should I be looking for?

Nov 10, 2010 at 4:02 AM
JamieBarnett wrote:

sroux: "... could you explain me the real purpose of the password field in the user settings ? Maybe i'm dumb but the admin is not supposed to know the user password, right ?"

In an ideal world the admin should not have access to a users password but there are scenarios where this functionality is required. 

We have several phones located in meeting rooms including Snom Meeting Point.

We still want the phones to login to AD and appear in our directory listings but there is no actual user to update the password.

If the phone firmware is updated or a reset is required we would prefer not to have to reset the password manually afterward, so in this instance we set the password through the admin tool directly.

It is also useful for ruling out client issues :)

 

In regard to the 8.5.4 firmware.

The reason I suggested the snapshot is that we ran that one for a good long while and it seemed to be very stable. We are running on 8.5.4 with no problems so far but we have not had it rolled out for long.

 

 

That make sense, if you're talking about it as an optional field that is only filled up when you're setting up a shared area handset. The thing that's confusing me is that when I try to add a normal user, someone I expect to be updating their own password using the desktop client, then I can't click the Save User button while the Password field is empty. Should I just be putting a junk password in, trusting that it gets overwritten when the desktop client prompts the user? Or am I doing something wrong there?

Once again, very impressed with what you guys have put together. It really is going to make Snoms usable OCS endpoints for us, which is a pretty huge deal. Once I get it up and running you'll have to let me know what the beer o choice in the SHFA IT department is ;-)

Ryan

Editor
Nov 10, 2010 at 4:29 PM

Ok, i figure it now, but it is mandatory to enter a password when crating a new user ?

Anyway, the whole password stuff is not working. Could you give us some clues on how to debug this process ? Am i supposed to get the password when using phones.asmx URL that let the phone pick up the config ?

Thanks for your updates.

 

Stephen

 

 

Coordinator
Nov 10, 2010 at 11:05 PM

Ryan,

It is not mandatory to provide a password when creating a new user. In fact it should be left empty when it is for a user that will be updated by the client.

I have reviewed the code and tested the creation of new users. There are no restrictions on this field. Are you getting a message that tells you it is required?

An AD user and a group are required but not the password.

 

Jamie.

Coordinator
Nov 10, 2010 at 11:09 PM

Stephen,

There are a lot of components that go into making "the whole password stuff" work. Could you be more specific in the aspects that are not working for you?

In general, for the phone to get a configuration (including the password) there are few things that need to be correct.

1. The phone must get it's inital config via the DHCP option 66 setting (e.g. "https://snomtastic.domain.com/register.aspx?mac={mac}")
The initial config sets a unique password for the phone in the database so that future communications can be secure. If you "reset" a phone it should be done from the Snomtastic interface as that will clear the password and allow the phone to obtain a new one.
If the phone is reset from the phone user interface the phone will no longer be allowed to connect to the Snomtastic server untill it is also reset from the server.

2. After a phone registers with snomtastic a user must be assigned to the phone.
No config information (other than the initial settings) will be sent to a phone unless a user has been assigned.

3. A password must be set for the user.
This can be done via the server or ideally from the snomtastic client. The client will promt the user when the password is required.


If you are still having issues have a look at the log on the phone, and the logs in the Snomtastic server. This will often help to identify the problem.


Regards,

Jamie.

Editor
Nov 10, 2010 at 11:36 PM

Sure, i can J

Everything is working ok except the password sync. It means that my phone can connect, grab the configuration settings, update firmware and so on.

The only thing that doesn’t work is the password change process, neither from web admin nor snomtastic client on the PC. It looks like the phone can get the password from the configuration.

If I look at Configuration\Default, I can see that user_pname is built from sAMAccountName through a kind of token <$sAMAccountName>

But user_pass is empty. Is it normal ? How can the phone get the user password ?

So, to summarize : 1 and 2 are ok, only point 3 is still a problem. Logs are pretty useless here: all is working ok except the fact that user_pass is empty.

I hope it’s clearer.

Thanks for your time, I appreciate your efforts and I try to do my best.

From: JamieBarnett [mailto:notifications@codeplex.com]
Sent: jeudi 11 novembre 2010 00:09
To: stephen_roux@hotmail.com
Subject: Re: Installation Niggles [snomtastic:232467]

From: JamieBarnett

Stephen,

There are a lot of components that go into making "the whole password stuff" work. Could you be more specific in the aspects that are not working for you?

In general, for the phone to get a configuration (including the password) there are few things that need to be correct.

1. The phone must get it's inital config via the DHCP option 66 setting (e.g. "https://snomtastic.domain.com/register.aspx?mac={mac}")
The initial config sets a unique password for the phone in the database so that future communications can be secure. If you "reset" a phone it should be done from the Snomtastic interface as that will clear the password and allow the phone to obtain a new one.
If the phone is reset from the phone user interface the phone will no longer be allowed to connect to the Snomtastic server untill it is also reset from the server.

2. After a phone registers with snomtastic a user must be assigned to the phone.
No config information (other than the initial settings) will be sent to a phone unless a user has been assigned.

3. A password must be set for the user.
This can be done via the server or ideally from the snomtastic client. The client will promt the user when the password is required.


If you are still having issues have a look at the log on the phone, and the logs in the Snomtastic server. This will often help to identify the problem.


Regards,

Jamie.

Read the full discussion online.

To add a post to this discussion, reply to this email (snomtastic@discussions.codeplex.com)

To start a new discussion for this project, email snomtastic@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe on CodePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at CodePlex.com

Editor
Nov 10, 2010 at 11:52 PM

Ok i think i've got it.

I was crawling into source code :-) when i found out that password is a token by itself <$password>

I set user_pass item to <$password> and it seems to work.

Maybe it's supposed to be the case by default but that was not for me.

Thanks

Nov 11, 2010 at 12:10 AM

Hi Jamie,

Not getting an error as such, just not able to create a user with a blank password.

I select a user from the drop-down which is handily pre-populated with all our AD accounts, then I select a group. When I click Save User it just sits there. If I give it a few minutes and then click Return, the user I selected hasn't been added.

The Save User button only seems to do something if I've got something in the Password field.

I've tested in IE8 and Chrome (7.0.517.44) so far. I take it from what you're saying that this behaviour isn't by design? =)

Editor
Nov 11, 2010 at 12:24 AM

I can answer this one : if you do not provide a password, you've got a script error (look at the bottom of your web browser). I traced this error and found out that when you save user settings, a stored procedure is called (can't remember the name by now) and this sp requires the password parameter. 

I've changed it to accept a default blanck password so i can register a user without entering a default password, but if you're not comfortable with SQL, you can put whatever you want for the password. The user will have to change it through the client utility anyway.

 

Nov 11, 2010 at 12:39 AM
sroux wrote:

I set user_pass item to <$password> and it seems to work.

Thanks Stephen, I can confirm that's working for me as well.

I also went into Settings > Identity 01 > Login and set user_pass not to encrypt, so that I could see that it was getting <$password>. I thought that I'd still have password security because the value in the database appeared to be already hashed, but checking the XML file that was being generated for my phone at https://snomtastic.access.local/phone/settings.aspx?mac=000413xxxxxx it included the dummy account's AD password in plaintext.

With Encrypt re-enabled on that field, <$password> gets hashed into a garbled mess, but still seems to work. However the AD password is still plaintext in the XML that the phone pulls. Re-reading the doco I'm guessing that's by design, and the reason that HTTPS is so important and the per-phone passwords are generated and used.

Nov 11, 2010 at 1:53 AM

I am so close now. Phones are getting all required settings from Snomtastic. For common area phones when the AD password is set thru the Snomtastic web interface, everything is perfect. I'm still getting Service Unavailable errors from the Snomtastic client when I tell it to check password.

How is the ST desktop client configured? My install.bat is referring to the server thusly:

msiexec /i snomtray.msi USERSERVICEURL="https://snomtastic.access.local" VALIDATEINTERVAL=300 /passive 

and in the registry I've got HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SHFA\Snomtastic with strings for that URL and the validateInterval.

The C:\Program Files (x86)\SHFA\Snomtastic\snomtray.exe.config has a reference to localhost that looks a little odd too.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="shfa.snomtastic.systray.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <appSettings>
    <add key="ValidateInterval" value="5000" />
    <add key="UserServiceUrl" value="" />
    <add key="ClientSettingsProvider.ServiceUri" value="" />
  </appSettings>
  <applicationSettings>
    <shfa.snomtastic.systray.Properties.Settings>
      <setting name="shfa_snomtastic_systray_UserService_user" serializeAs="String">
        <value>http://localhost/snomtastic/services/user.asmx</value>
      </setting>
    </shfa.snomtastic.systray.Properties.Settings>
  </applicationSettings>
  <system.web>
    <membership defaultProvider="ClientAuthenticationMembershipProvider">
      <providers>
        <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
      </providers>
    </membership>
    <roleManager defaultProvider="ClientRoleProvider" enabled="true">
      <providers>
        <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

I'm not sure that https://snomtastic.access.local is the right value for the install.bat. Should I actually be using https://snomtastic.access.local/services/ or something further down the tree?

I did give this a shot on an XP box as well, just to make sure it wasn't an x64 issue. I seem to be getting the same problem there. I'm pretty sure it's just a case of me misunderstanding what's supposed to go where in the client config. Any suggestions would be greatly appreciated.

Nov 11, 2010 at 3:24 AM

OK, I'm now convinced that the client is checking that reg key on startup. When I change it from https:// to http:// and wireshark, I can see a HTTP conversation between my machine and the Snomtastic server, where before it was a TLS session. So, progress =)

I've had a look in the IIS logs and the client *seems* to be trying to post to /services/user.asmx and getting a response code of 500. When I browse to http://snomtastic.access.local/services/user.asmx (or https://) I'm getting a response from the User Web Service, with a list of the supported operations (NeedPasswordUpdate, SendPhoneCommand, etc). I assume that the Snomtastic client is calling one of those, but without knowing the exact URL it's calling I can't reproduce it in a browser. I'm out of my depth on web services here, so it's quite possible that reproducing the error in a browser isn't going to be a valid option anyway.

Is there any way of getting the Snomtastic client to be more verbose about the errors it's getting, or to log what it's doing somewhere?

I'm going to read up on logging and debugging in IIS 7.5, see if there's something else I can turn on on the server end of it to give me more details.

Cheers,

Ryan

Nov 11, 2010 at 4:30 AM

Got it!

I didn't have the Interop.ActiveDs.dll in \shfa.snomtastic.root\bin. I'd copied it into the Admin and Phone \bin folders, but obviously not the root one. Thank you IIS Failed Request Tracing! =)

Now we start a trial deployment. I'm replacing an NEC IPK II with Asterisk/OCS/Snoms in a branch office the week after next, so we'll have some Snomtastic guinea pigs. Really, really liking Snomtastic right now.

Coordinator
Nov 17, 2010 at 9:15 AM

Thanks for the awesome feedback everyone.

I finally enabled notifications so I know of new discussions - it's very cool to see people using it.

I'm hoping to setup a fresh 'demo' instance of Snomtastic and go through its setup in a blog post. If I can get fancy enough, I might even see if I can do some kind of demo vhd for people to download ...

 

Would love to hear the results of your pilots/deployments. I think from discussions with Jamie that we're hoping to add scheduling for various aspects, to overcome some of the less welcome aspects (universal firmware update, anyone?).

Also, just by way of update, we'd call the 8.5.4 firmware stable and reliable. We also have 8.5.8 for testing, which we think is stable but will confirm.