From: <hor...@us...> - 2011-12-03 16:12:17
|
Revision: 4363 http://mp-plugins.svn.sourceforge.net/mp-plugins/?rev=4363&view=rev Author: horned-reaper Date: 2011-12-03 16:12:08 +0000 (Sat, 03 Dec 2011) Log Message: ----------- Official build Modified Paths: -------------- trunk/plugins/FritzBox/Build/Build.log trunk/plugins/FritzBox/FritzBox/FritzBox.cs trunk/plugins/FritzBox/FritzBox/FritzBox.csproj trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.Designer.cs trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.cs trunk/plugins/FritzBox/FritzBox/FritzCallMonitor/FritzBoxClient.cs trunk/plugins/FritzBox/FritzBox/FritzManager/CallItem.cs trunk/plugins/FritzBox/FritzBox/FritzManager/Fritz.cs trunk/plugins/FritzBox/FritzBox/FritzManager/PhonebookItem.cs trunk/plugins/FritzBox/FritzBox/Properties/AssemblyInfo.cs trunk/plugins/FritzBox/FritzBox/Settings.cs trunk/plugins/FritzBox/FritzBox/bin/Release/FritzBox.dll trunk/plugins/FritzBox/FritzBox/bin/Release/FritzBox.pdb trunk/plugins/FritzBox/FritzBox/obj/Debug/FritzBox.csproj.FileListAbsolute.txt trunk/plugins/FritzBox/FritzBox/obj/Debug/FritzBox.dll trunk/plugins/FritzBox/FritzBox/obj/Debug/FritzBox.pdb trunk/plugins/FritzBox/FritzBox/obj/Debug/GenerateResource.read.1.tlog trunk/plugins/FritzBox/FritzBox/obj/Release/FritzBox.csproj.GenerateResource.Cache trunk/plugins/FritzBox/FritzBox/obj/Release/FritzBox.dll trunk/plugins/FritzBox/FritzBox/obj/Release/FritzBox.pdb trunk/plugins/FritzBox/MpeRelease/FritzBox.mpe1 trunk/plugins/FritzBox/MpeRelease/FritzBox.xmp2 trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/bin/Debug/FritzBox.dll trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/bin/Debug/FritzBox.pdb trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/bin/Debug/FritzBoxConfigTester.exe trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/bin/Debug/FritzBoxConfigTester.pdb trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/bin/Release/FritzBoxConfigTester.exe trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/bin/Release/FritzBoxConfigTester.pdb trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/obj/Debug/FritzBoxConfigTester.csproj.FileListAbsolute.txt trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/obj/Debug/FritzBoxConfigTester.exe trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/obj/Debug/FritzBoxConfigTester.pdb trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/obj/Debug/ResolveAssemblyReference.cache trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/obj/Release/FritzBoxConfigTester.exe trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/obj/Release/FritzBoxConfigTester.pdb trunk/plugins/FritzBox/Tools/FritzBoxConfigTester/obj/Release/ResolveAssemblyReference.cache trunk/plugins/FritzBox/Tools/FritzBoxDebugger/bin/Debug/FritzBox.dll trunk/plugins/FritzBox/Tools/FritzBoxDebugger/bin/Debug/FritzBox.pdb trunk/plugins/FritzBox/Tools/FritzBoxDebugger/bin/Debug/FritzBoxDebugger.exe trunk/plugins/FritzBox/Tools/FritzBoxDebugger/bin/Debug/FritzBoxDebugger.pdb trunk/plugins/FritzBox/Tools/FritzBoxDebugger/bin/Release/FritzBoxDebugger.exe trunk/plugins/FritzBox/Tools/FritzBoxDebugger/bin/Release/FritzBoxDebugger.pdb trunk/plugins/FritzBox/Tools/FritzBoxDebugger/obj/Debug/FritzBoxDebugger.csproj.FileListAbsolute.txt trunk/plugins/FritzBox/Tools/FritzBoxDebugger/obj/Debug/FritzBoxDebugger.exe trunk/plugins/FritzBox/Tools/FritzBoxDebugger/obj/Debug/FritzBoxDebugger.pdb trunk/plugins/FritzBox/Tools/FritzBoxDebugger/obj/Release/FritzBoxDebugger.exe trunk/plugins/FritzBox/Tools/FritzBoxDebugger/obj/Release/FritzBoxDebugger.pdb Added Paths: ----------- trunk/plugins/FritzBox/FritzBox/FritzManager/StringEncryption.cs trunk/plugins/FritzBox/MpeRelease/update.xml trunk/plugins/FritzBox/releases/FritzBox_v0.3.5.4362.mpe1 Removed Paths: ------------- trunk/plugins/FritzBox/releases/FritzBox_v0.3.5.4349.mpe1 trunk/plugins/FritzBox/releases/FritzBox_v0.3.5.4356.mpe1 trunk/plugins/FritzBox/releases/FritzBox_v0.3.5.4358.mpe1 trunk/plugins/FritzBox/releases/FritzBox_v0.3.5.4359.mpe1 Property Changed: ---------------- trunk/plugins/FritzBox/FritzBox/Skin/ Modified: trunk/plugins/FritzBox/Build/Build.log =================================================================== --- trunk/plugins/FritzBox/Build/Build.log 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/Build/Build.log 2011-12-03 16:12:08 UTC (rev 4363) @@ -1,6 +1,6 @@ Running : C:\Program Files\TortoiseSVN\bin\SubWCRev.exe -SVN Version: 4359 +SVN Version: 4362 Updating: D:\FritzBox\FritzBox\Properties\AssemblyInfo.cs Updating: D:\FritzBox\MP2version\Listeners\FritzBox\Properties\AssemblyInfo.cs Updating: D:\FritzBox\MP2version\Properties\AssemblyInfo.cs @@ -10,7 +10,7 @@ [Microsoft .NET Framework, Version 2.0.50727.3625] Copyright (C) Microsoft Corporation 2007. All rights reserved. -Build started 01.12.2011 10:04:59. +Build started 03.12.2011 16:47:07. Project "D:\FritzBox\FritzBox.sln" on node 0 (Rebuild target(s)). Building solution configuration "Release|Mixed Platforms". Project "D:\FritzBox\FritzBox.sln" (1) is building "D:\FritzBox\FritzBox\FritzBox.csproj" (2) on node 0 (Rebuild target(s)). @@ -105,7 +105,7 @@ 2 Warning(s) 0 Error(s) -Time Elapsed 00:00:01.93 +Time Elapsed 00:00:01.95 Reverting to build 0 Updating: D:\FritzBox\FritzBox\Properties\AssemblyInfo.cs Updating: D:\FritzBox\MP2version\Listeners\FritzBox\Properties\AssemblyInfo.cs @@ -190,6 +190,6 @@ ..\FritzBox\Languages\Unsupported\strings_zh-CN.xml 36 File(s) copied MpeMaker version: 1.2.1.0 -Build started at 10:05:03 +Build started at 16:47:11 Building "D:\FritzBox\MpeRelease\FritzBox.xmp2" Output: "..\MpeRelease\FritzBox.mpe1" Modified: trunk/plugins/FritzBox/FritzBox/FritzBox.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBox.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/FritzBox.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -653,8 +653,7 @@ { phoneBookPath = Config.GetFolder(Config.Dir.Config) + "\\fritzmanagerPhonebook.xml"; mediaPortalLanguage = xmlreader.GetValue("gui", "language"); - - passwd = xmlreader.GetValue("FritzManager", "passwd"); + passwd = Settings.FmPassword; vBPath = xmlreader.GetValue("FritzManager", "vBPath"); dialport = xmlreader.GetValue("FritzManager", "dialport"); useInversSearch = xmlreader.GetValueAsBool("FritzManager", "useInversSearch", true); @@ -698,7 +697,7 @@ ShowThumbPanel(); - if (String.IsNullOrEmpty(passwd) && String.IsNullOrEmpty(vBPath)) ShowError(GUILocalizeStrings.Get(24)); // 24 = "Could not load phone book" + if (String.IsNullOrEmpty(passwd) && String.IsNullOrEmpty(vBPath)) ShowError(GUILocalizeStrings.Get(24)); // 24 = FRITZ!Box password and voice box path are missing in settings! } private static void OnTimedEvent(object source, System.Timers.ElapsedEventArgs e) @@ -880,26 +879,13 @@ protected void loadCallListFromFritzbox(bool forceReload) { - if (!String.IsNullOrEmpty(passwd)) - { - GUIWaitCursor.Show(); + GUIWaitCursor.Show(); - try - { - Log.Debug("load call list from FritzBox"); + byte[] data = fritz.loadCallListData(forceReload); - byte[] data = fritz.loadCallListData(forceReload); + refreshCallData(data); - refreshCallData(data); - } - catch (Exception e) - { - Log.Debug("Exception {0}", e.Message); - } - - GUIWaitCursor.Hide(); - } - else Log.Debug("FritzBox password is not set. Call list cannot be loaded"); + GUIWaitCursor.Hide(); } protected string decode(VoiceBoxItem item) @@ -924,38 +910,35 @@ { facadeView.Clear(); - if (fritzPhonebooks.Items == null || fritzPhonebooks.Items.GetLength(0) == 0) + if (fritzPhonebooks.Items != null && fritzPhonebooks.Items.GetLength(0) != 0) { - Log.Debug("no FritzBox phone book items found"); + Phonebook p = fritzPhonebooks.Items[0]; // always choose first phone book + int i = 0; + string thumbDir = Config.GetFolder(Config.Dir.Thumbs) + "\\yac\\"; - return; - } - - Phonebook p = fritzPhonebooks.Items[0]; // always choose first phone book - int i = 0; - string thumbDir = Config.GetFolder(Config.Dir.Thumbs) + "\\yac\\"; - - foreach (Contact c in p.contact) - { - string name = c.person[0].realName; - - foreach (TelephonyNumber number in c.telephony) + foreach (Contact c in p.contact) { - GUIListItem elem = new GUIListItem(); - elem.Label = name; - elem.Label2 = number.Value; + string name = c.person[0].realName; - if (elem.Label2.Length > 0) + foreach (TelephonyNumber number in c.telephony) { - if (File.Exists(thumbDir + c.person[0].realName + ".jpg")) elem.ThumbnailImage = thumbDir + c.person[0].realName + ".jpg"; - else elem.ThumbnailImage = thumbDir + "_noImage.png"; + GUIListItem elem = new GUIListItem(); + elem.Label = name; + elem.Label2 = number.Value; - elem.Path = Convert.ToString(i++); + if (elem.Label2.Length > 0) + { + if (File.Exists(thumbDir + c.person[0].realName + ".jpg")) elem.ThumbnailImage = thumbDir + c.person[0].realName + ".jpg"; + else elem.ThumbnailImage = thumbDir + "_noImage.png"; - facadeView.Add(elem); + elem.Path = Convert.ToString(i++); + + facadeView.Add(elem); + } } } } + else Log.Debug("no FRITZ!Box phone book items found"); } /// <summary> @@ -1054,7 +1037,7 @@ } /// <summary> - /// fill in call items in facadeView + /// fill in call list items in facadeView /// </summary> protected void populateCallItems() { @@ -1175,7 +1158,6 @@ if (actionType == MediaPortal.GUI.Library.Action.ActionType.ACTION_SHOW_INFO) { OnShowContextMenu(); - return; } Modified: trunk/plugins/FritzBox/FritzBox/FritzBox.csproj =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBox.csproj 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/FritzBox.csproj 2011-12-03 16:12:08 UTC (rev 4363) @@ -89,6 +89,9 @@ </ItemGroup> <ItemGroup> <Compile Include="FritzCallMonitor\FritzBoxClient.cs" /> + <Compile Include="FritzManager\StringEncryption.cs"> + <SubType>Code</SubType> + </Compile> <Compile Include="FritzManager\VBReader.cs" /> <Compile Include="FritzManager\BackGroundWorker.cs" /> <Compile Include="FritzManager\BlockingQueue.cs" /> Modified: trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.Designer.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.Designer.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.Designer.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -849,9 +849,9 @@ this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(24, 92); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(371, 13); + this.label2.Size = new System.Drawing.Size(354, 13); this.label2.TabIndex = 17; - this.label2.Text = "Voice box path (e. g. \\\\Fritz!nas\\FRITZ.NAS\\MemoryStick\\FRITZ\\voicebox)"; + this.label2.Text = "Voice box path (e. g. \\\\fritz.box\\FRITZ.NAS\\USBStore\\FRITZ\\voicebox)"; // // updateInterval // Modified: trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/FritzBoxConfig.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -35,7 +35,7 @@ { public FritzBoxConfig() { - // Configure logging into Configuration.log + // Configure logging into Configuration.log file Log.SetConfigurationMode(); Log.BackupLogFile(LogType.Config); @@ -81,7 +81,7 @@ checkBoxStopMediaOnIncomingCall.Checked = Settings.StopMedia; checkBoxResumeMedia.Checked = Settings.ResumeMedia; - // phoneBook settings + // phone book settings checkBoxUsePhonebook.Checked = PhoneBook.Enabled; checkBoxShowUnknownCaller.Checked = PhoneBook.ShowUnknownCaller; @@ -96,7 +96,7 @@ RefreshDataGridView(); - // fritzmanager settings + // FritzBox Manager settings passwd.Text = Settings.FmPassword; vBPath.Text = Settings.FmVBPath; dialPort.Text = Settings.FmDialPort; @@ -160,15 +160,11 @@ private void okButton_Click(object sender, EventArgs e) { SaveSettings(); - FritzBoxClient.StopClient(); - FritzBoxClient.LogEvent -= OnLogAction; Close(); } private void cancelButton_Click(object sender, EventArgs e) { - FritzBoxClient.StopClient(); - FritzBoxClient.LogEvent -= OnLogAction; Close(); } @@ -314,10 +310,6 @@ FritzBoxClient.LogEvent += OnLogAction; Log.Debug("FRITZ!Box: Connection test: Start"); - - // stopping client - Log.Debug("FRITZ!Box: Connection test: Stop client"); - FritzBoxClient.StopClient(); // set current settings FritzBoxClient.Address = textBoxAddress.Text; @@ -330,11 +322,16 @@ // if port test was successful start client Log.Debug("FRITZ!Box: Connection test: Start client"); FritzBoxClient.StartClient(); + + FritzBoxClient.LogEvent -= OnLogAction; + + // stopping client + Log.Debug("FRITZ!Box: Connection test: Stop client"); + FritzBoxClient.StopClient(); } + else FritzBoxClient.LogEvent -= OnLogAction; Log.Debug("FRITZ!Box: Connection test: End"); - - FritzBoxClient.LogEvent -= OnLogAction; } #endregion @@ -434,4 +431,4 @@ #endregion } -} +} \ No newline at end of file Modified: trunk/plugins/FritzBox/FritzBox/FritzCallMonitor/FritzBoxClient.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzCallMonitor/FritzBoxClient.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/FritzCallMonitor/FritzBoxClient.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -121,7 +121,8 @@ { try { - if( _client != null ) { + if (_client != null) + { // Release the socket. _client.Shutdown(SocketShutdown.Both); _client.Close(); @@ -129,44 +130,45 @@ } catch (Exception ex) { - Log(ex); + Log(LogLevel.Error, "Error on stopping client: " + ex.Message); } } public static bool TestConnection() { - try - { - Log(LogLevel.Info, "Testing address ({0}) and port ({1})", Address, Port); - - TcpClient tcpClient; - try { - tcpClient = new TcpClient(Address, Port); - } - catch (Exception) - { - Log(LogLevel.Error, - "Address & port test failed! :(" + Environment.NewLine + - " Did you entered correct connection information?" + Environment.NewLine + - " Are you using the latest FRITZ!Box firmware?" + Environment.NewLine + - " Did you opened the port on your FRITZ!Box? If not, call #96*5* from your phone."); + Log(LogLevel.Info, "Testing address ({0}) and port ({1})", Address, Port); - return false; - } + TcpClient tcpClient; - tcpClient.Close(); - Log(LogLevel.Info, "Testing address & port succeeded."); + try + { + tcpClient = new TcpClient(Address, Port); + } + catch (Exception) + { + Log(LogLevel.Error, + "Address & port test failed! :(" + Environment.NewLine + + " Did you enter correct connection information?" + Environment.NewLine + + " Are you using the latest FRITZ!Box firmware?" + Environment.NewLine + + " Did you open the port on your FRITZ!Box? If not call #96*5* from your phone."); - return true; - } - catch (Exception ex) - { - Log(ex); + return false; + } - return false; - } + tcpClient.Close(); + + Log(LogLevel.Info, "Testing address & port succeeded."); + + return true; + } + catch (Exception ex) + { + Log(ex); + + return false; + } } #endregion @@ -297,99 +299,96 @@ private static void ReceiveCallback(IAsyncResult ar) { - try - { - // Retrieve the state object and the client socket - // from the asynchronous state object. - StateObject state = (StateObject) ar.AsyncState; - Socket client = state.workSocket; + try + { + // Retrieve the state object and the client socket + // from the asynchronous state object. + StateObject state = (StateObject)ar.AsyncState; + Socket client = state.workSocket; - // Read data from the remote device. - int bytesRead = client.EndReceive(ar); + // Read data from the remote device. + int bytesRead = client.EndReceive(ar); - if (bytesRead > 0) - { - // There might be more data, so store the data received so far. - string data = Encoding.ASCII.GetString(state.buffer, 0, bytesRead); - Log(LogLevel.HeavyDebug, "ReceiveCallback : received data: {0}", data); - //Log.Debug();"ReceiveCallback : received data: {0}", data + if (bytesRead > 0) + { + // There might be more data, so store the data received so far. + string data = Encoding.ASCII.GetString(state.buffer, 0, bytesRead); + Log(LogLevel.HeavyDebug, "ReceiveCallback : received data: {0}", data); + //Log.Debug();"ReceiveCallback : received data: {0}", data - // data-stream can be in following format: - // incoming calls: DateTime;RING;ConnectionID;CallerID;MSN;??POTS??; - // outgoing calls: DateTime;CALL;ConnectionID;??Nebenstelle??;MSN;CallerID;??POTS??; - // connection started: DateTime;CONNECT;ConnectionID;??Nebenstelle??;CallerID; - // connection closed: DateTime;DISCONNECT;ConnectionID;ConnectedTime; + // data-stream can be in following format: + // incoming calls: DateTime;RING;ConnectionID;CallerID;MSN;??POTS??; + // outgoing calls: DateTime;CALL;ConnectionID;??Nebenstelle??;MSN;CallerID;??POTS??; + // connection started: DateTime;CONNECT;ConnectionID;??Nebenstelle??;CallerID; + // connection closed: DateTime;DISCONNECT;ConnectionID;ConnectedTime; - // DateTime format: - // 12.12.06 12:12:12 - // dd.MM.yy hh:mm:ss + // DateTime format: + // 12.12.06 12:12:12 + // dd.MM.yy hh:mm:ss - string[] strList = data.Trim().Split(';'); - CallAction callAction = new CallAction(); + string[] strList = data.Trim().Split(';'); + CallAction callAction = new CallAction(); - // time when action happens - callAction.Time = DateTime.Parse(strList[0], new CultureInfo("de-DE", false)); + // time when action happens + callAction.Time = DateTime.Parse(strList[0], new CultureInfo("de-DE", false)); - // set the type of the callAction - switch (strList[1]) - { - case "RING": - callAction.Type = CallAction.CallType.Incoming; - // sets the callerID - callAction.Caller.ID = strList[3]; - callAction.MSN = strList[4]; - break; - case "CALL": - callAction.Type = CallAction.CallType.Outgoing; - // sets the callerID - callAction.Caller.ID = strList[5]; - callAction.MSN = strList[4]; - break; - case "CONNECT": - callAction.Type = CallAction.CallType.ConnectionStarted; - // sets the callerID - callAction.Caller.ID = strList[4]; - break; - case "DISCONNECT": - callAction.Type = CallAction.CallType.ConnectionClosed; - break; - default: - callAction = null; - break; - } + // set the type of the callAction + switch (strList[1]) + { + case "RING": + callAction.Type = CallAction.CallType.Incoming; + // sets the callerID + callAction.Caller.ID = strList[3]; + callAction.MSN = strList[4]; + break; + case "CALL": + callAction.Type = CallAction.CallType.Outgoing; + // sets the callerID + callAction.Caller.ID = strList[5]; + callAction.MSN = strList[4]; + break; + case "CONNECT": + callAction.Type = CallAction.CallType.ConnectionStarted; + // sets the callerID + callAction.Caller.ID = strList[4]; + break; + case "DISCONNECT": + callAction.Type = CallAction.CallType.ConnectionClosed; + break; + default: + callAction = null; + break; + } - // continue to listen to the fb - client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, - new AsyncCallback(ReceiveCallback), state); + // continue to listen to the fb + client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), state); - if (CallEvent != null) - CallEvent(callAction); + if (CallEvent != null) CallEvent(callAction); + } + else + { + Log(LogLevel.Debug, "ReceiveCallback: no bytes to read"); + Log(LogLevel.Info, "FRITZ!BOX connection lost, trying to reconnect."); + ReConnect(); + } } - else + catch (ObjectDisposedException) { - Log(LogLevel.Debug, "ReceiveCallback: no bytes to read"); - Log(LogLevel.Info, "FRITZ!BOX connection lost, trying to reconnect."); - ReConnect(); + Log(LogLevel.Debug, "ReceiveCallback: ObjectDisposedException"); + Log(LogLevel.Info, "FRITZ!BOX connection shut down."); } - } - catch (ObjectDisposedException) - { - Log(LogLevel.Debug, "ReceiveCallback: ObjectDisposedException"); - Log(LogLevel.Info, "FRITZ!BOX connection shut down."); - } - catch (SocketException) - { - Log(LogLevel.Debug, "ReceiveCallback: SocketException"); - Log(LogLevel.Info, "FRITZ!BOX connection lost, trying to reconnect."); - ReConnect(); - } - catch (Exception ex) - { - Log(ex); - } + catch (SocketException) + { + Log(LogLevel.Debug, "ReceiveCallback: SocketException"); + Log(LogLevel.Info, "FRITZ!BOX connection lost, trying to reconnect."); + ReConnect(); + } + catch (Exception ex) + { + Log(ex); + } } - private static void Log(LogLevel logLevel, string format, params object[] arg) { if (LogEvent != null) Modified: trunk/plugins/FritzBox/FritzBox/FritzManager/CallItem.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzManager/CallItem.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/FritzManager/CallItem.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -74,7 +74,7 @@ } catch (Exception e) { - Log.Debug("Error loading call items: {0}", e.Message); + Log.Debug("Error loading call list items: {0}", e.Message); } return result; Modified: trunk/plugins/FritzBox/FritzBox/FritzManager/Fritz.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzManager/Fritz.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/FritzManager/Fritz.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -41,26 +41,8 @@ this.dialport = dialport; } - private string getChallenge() + public bool alreadyLoggedIn() { - string response = null; - try - { - WebClient client = new WebClient(); - response = client.DownloadString(baseurl + "?getpage=../html/login_sid.xml"); - } - catch (WebException) - { - //useSidAuthentication = false; - return ""; - } - Regex exp = new Regex(@"<Challenge>(.*)</Challenge>", RegexOptions.Multiline); - MatchCollection matchList = exp.Matches(response); - return matchList[0].Groups[1].Value; - } - - private bool alreadyLoggedIn() - { return loggedIn; } @@ -122,85 +104,53 @@ { byte[] result = { 0 } ; - if (!String.IsNullOrEmpty(passwd)) - { - if (forceReload || DateTime.Now.Subtract(lastCallListUpdate).Minutes > 2) result = loadCallListDataInternal(); - else - { - // try local cache - Log.Debug("try to load call list from cache"); + if (!loggedIn) login(); - lock (cacheSync) - { - // read data from cache - try - { - if (File.Exists(cacheFileName)) result = File.ReadAllBytes(cacheFileName); - } - catch - { - Log.Debug("cached call list could not be loaded"); - } - } - - if (result == null) result = loadCallListDataInternal(); - } - } - else Log.Debug("FritzBox password is not set. Call list cannot be loaded"); - - return result; - } - - private System.Object cacheSync = new System.Object(); - - /// <summary> - /// load internally (really remote) and put result to cache - /// </summary> - /// <returns></returns> - protected byte[] loadCallListDataInternal() - { - byte[] result = { 0 }; - - Log.Debug("load call list from FritzBox"); - - if (!String.IsNullOrEmpty(passwd)) + if (alreadyLoggedIn() && (forceReload || DateTime.Now.Subtract(lastCallListUpdate).Minutes > 2)) { + // direct download from FRITZ!Box + Log.Debug("trying to load call list directly from FRITZ!Box..."); + try { - if (!loggedIn) login(); - - refresh(); - - lastCallListUpdate = DateTime.Now; // update time stamp - WebClient client = new WebClient(); - - client.Headers.Add("Cache-Control", "max-age=0"); - result = client.DownloadData(baseurl + "?sid=" + sid + "&getpage=../html/de/FRITZ%21Box_Anrufliste.csv"); - - lock (cacheSync) - { - // put data to cache - File.WriteAllBytes(cacheFileName, result); - } + result = loadCallListDataInternal(); } catch { - Log.Debug("call list could not be loaded"); + Log.Debug("could not load call list from FRITZ!Box"); } } - else Log.Debug("FritzBox password is not set. Call list cannot be loaded"); + else + { + // download from local cache + Log.Debug("trying to load call list from local cache..."); + lock (cacheSync) + { + try + { + if (File.Exists(cacheFileName)) result = File.ReadAllBytes(cacheFileName); + } + catch + { + Log.Debug("locally cached call list could not be loaded"); + } + } + + //if (result == null) result = loadCallListDataInternal(); + } + return result; } public string loadPhoneBook() { - if (!String.IsNullOrEmpty(passwd)) + if (!loggedIn) login(); + + if (alreadyLoggedIn()) { try { - if (!loggedIn) login(); - string postdata = "-----------------------------88612920297\r\n" + "Content-Disposition: form-data; name=\"sid\"\r\n" + @@ -225,17 +175,80 @@ } catch { - Log.Debug("Error on loading phone book"); + Log.Debug("error on loading phone book"); return ""; } } else { - Log.Debug("FritzBox password is not set. Phone book cannot be loaded"); + Log.Debug("no connection to FRITZ!Box. Phone book cannot be loaded"); return ""; } } + /// <summary> + /// dial a number on fritz + /// </summary> + /// <param name="number">number to dial</param> + /// <param name="dialport">port to use</param> + public void dial(string number) + { + if (!loggedIn) login(); + + string postdata = String.Format( + "getpage=../html/de/menus/menu2.html&var:lang=de&sid={0}" + + "&telcfg:settings/UseClickToDial=1&telcfg:command/Dial={1}" + + "&telcfg:settings/DialPort={2}", + this.sid, number, dialport); + + PostRequest(baseurl, postdata); + } + + private string getChallenge() + { + string response = null; + try + { + WebClient client = new WebClient(); + response = client.DownloadString(baseurl + "?getpage=../html/login_sid.xml"); + } + catch (WebException) + { + //useSidAuthentication = false; + return ""; + } + Regex exp = new Regex(@"<Challenge>(.*)</Challenge>", RegexOptions.Multiline); + MatchCollection matchList = exp.Matches(response); + return matchList[0].Groups[1].Value; + } + + private System.Object cacheSync = new System.Object(); + + /// <summary> + /// load internally (really remote) and put result to cache + /// </summary> + /// <returns></returns> + protected byte[] loadCallListDataInternal() + { + byte[] result = { 0 }; + + refresh(); + + lastCallListUpdate = DateTime.Now; // update time stamp + WebClient client = new WebClient(); + + client.Headers.Add("Cache-Control", "max-age=0"); + result = client.DownloadData(baseurl + "?sid=" + sid + "&getpage=../html/de/FRITZ%21Box_Anrufliste.csv"); + + lock (cacheSync) + { + // put data to cache + File.WriteAllBytes(cacheFileName, result); + } + + return result; + } + protected string PostRequest(string url, string postdata) { return PostRequest(url, postdata, "application/x-www-form-urlencoded", "UTF-8"); @@ -271,22 +284,5 @@ return ""; } } - - /// <summary> - /// dial a number on fritz - /// </summary> - /// <param name="number">number to dial</param> - /// <param name="dialport">port to use</param> - public void dial(string number) - { - if (!loggedIn) login(); - string postdata = String.Format( - "getpage=../html/de/menus/menu2.html&var:lang=de&sid={0}" + - "&telcfg:settings/UseClickToDial=1&telcfg:command/Dial={1}" + - "&telcfg:settings/DialPort={2}", - this.sid, number, dialport); - - PostRequest(baseurl, postdata); - } } } Modified: trunk/plugins/FritzBox/FritzBox/FritzManager/PhonebookItem.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzManager/PhonebookItem.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/FritzManager/PhonebookItem.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -6,57 +6,57 @@ namespace FritzManager { - public class InternalPhoneBook - { - static Logger Log = LoggerFactory.getLogger("InternalPhoneBook"); - - public List<PhonebookItem> items = new List<PhonebookItem>(); - - public static void savePhonebook(GCollections.ICollection<PhonebookItem> items, string fileName) + public class InternalPhoneBook { - InternalPhoneBook book = new InternalPhoneBook(); - Log.Debug("Saving internal phoneBook to {0}", fileName); + static Logger Log = LoggerFactory.getLogger("InternalPhoneBook"); - foreach (PhonebookItem i in items) - { - book.items.Add(i); - } + public List<PhonebookItem> items = new List<PhonebookItem>(); - XmlSerializer s = new XmlSerializer(typeof (InternalPhoneBook)); - TextWriter w = new StreamWriter(fileName); + public static void savePhonebook(GCollections.ICollection<PhonebookItem> items, string fileName) + { + InternalPhoneBook book = new InternalPhoneBook(); + Log.Debug("Saving internal phoneBook to {0}", fileName); - s.Serialize(w, book); + foreach (PhonebookItem i in items) + { + book.items.Add(i); + } - w.Close(); - } + XmlSerializer s = new XmlSerializer(typeof(InternalPhoneBook)); + TextWriter w = new StreamWriter(fileName); - public static HashMap<string, PhonebookItem> loadPhoneBook(string fileName) - { - HashMap<string, PhonebookItem> result = new HashMap<string, PhonebookItem>(); + s.Serialize(w, book); - if (File.Exists(fileName)) - { - Log.Debug("Loading internal phone book from {0}", fileName); - - XmlSerializer s = new XmlSerializer(typeof (InternalPhoneBook)); - TextReader r = new StreamReader(fileName); - InternalPhoneBook l = (InternalPhoneBook) s.Deserialize(r); - - r.Close(); + w.Close(); + } - foreach (PhonebookItem i in l.items) + public static HashMap<string, PhonebookItem> loadPhoneBook(string fileName) { - result[i.number] = i; + HashMap<string, PhonebookItem> result = new HashMap<string, PhonebookItem>(); + + if (File.Exists(fileName)) + { + Log.Debug("Loading FritzManager phone book from {0}", fileName); + + XmlSerializer s = new XmlSerializer(typeof(InternalPhoneBook)); + TextReader r = new StreamReader(fileName); + InternalPhoneBook l = (InternalPhoneBook)s.Deserialize(r); + + r.Close(); + + foreach (PhonebookItem i in l.items) + { + result[i.number] = i; + } + } + else + { + Log.Debug("Could not load FritzManager phone book, file {0} not found", fileName); + } + + return result; } - } - else - { - Log.Debug("Could not load internal phone book, file {0} not found", fileName); - } - - return result; } - } /// <summary> /// Description of PhonebookItem. Added: trunk/plugins/FritzBox/FritzBox/FritzManager/StringEncryption.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/FritzManager/StringEncryption.cs (rev 0) +++ trunk/plugins/FritzBox/FritzBox/FritzManager/StringEncryption.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -0,0 +1,106 @@ +using System; +using System.Text; +using System.Security.Cryptography; + +namespace FritzBox +{ + class StringEncryption + { + public static string EncryptString(string Message, string Passphrase) + { + byte[] Results; + System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding(); + + if (!String.IsNullOrEmpty(Message) && !String.IsNullOrEmpty(Passphrase)) + { + // Step 1. We hash the passphrase using MD5 + // We use the MD5 hash generator as the result is a 128 bit byte array + // which is a valid length for the TripleDES encoder we use below + + MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider(); + byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(Passphrase)); + + // Step 2. Create a new TripleDESCryptoServiceProvider object + TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider(); + + // Step 3. Setup the encoder + TDESAlgorithm.Key = TDESKey; + TDESAlgorithm.Mode = CipherMode.ECB; + TDESAlgorithm.Padding = PaddingMode.PKCS7; + + // Step 4. Convert the input string to a byte[] + byte[] DataToEncrypt = UTF8.GetBytes(Message); + + // Step 5. Attempt to encrypt the string + try + { + ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor(); + Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length); + } + finally + { + // Clear the TripleDes and Hashprovider services of any sensitive information + TDESAlgorithm.Clear(); + HashProvider.Clear(); + } + + // Step 6. Return the encrypted string as a base64 encoded string + return Convert.ToBase64String(Results); + } + else return null; + } + + public static string DecryptString(string Message, string Passphrase) + { + byte[] Results; + System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding(); + + if (!String.IsNullOrEmpty(Message) && !String.IsNullOrEmpty(Passphrase)) + { + // Step 1. We hash the passphrase using MD5 + // We use the MD5 hash generator as the result is a 128 bit byte array + // which is a valid length for the TripleDES encoder we use below + + MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider(); + byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(Passphrase)); + + // Step 2. Create a new TripleDESCryptoServiceProvider object + TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider(); + + // Step 3. Setup the decoder + TDESAlgorithm.Key = TDESKey; + TDESAlgorithm.Mode = CipherMode.ECB; + TDESAlgorithm.Padding = PaddingMode.PKCS7; + + // Step 4. Convert the input string to a byte[] + byte[] DataToDecrypt; + + try + { + DataToDecrypt = Convert.FromBase64String(Message); + } + catch + { + return null; + } + + // Step 5. Attempt to decrypt the string + try + { + ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor(); + Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length); + } + finally + { + // Clear the TripleDes and Hashprovider services of any sensitive information + TDESAlgorithm.Clear(); + HashProvider.Clear(); + } + + // Step 6. Return the decrypted string in UTF8 format + return UTF8.GetString(Results); + } + else return null; + } + } +} Modified: trunk/plugins/FritzBox/FritzBox/Properties/AssemblyInfo.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/Properties/AssemblyInfo.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/Properties/AssemblyInfo.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -31,9 +31,9 @@ [assembly: AssemblyTitle("FRITZ!Box Manager")] [assembly: AssemblyDescription("Displays FRITZ!Box calling information / phoneBook / voicebox.")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Rinke Solutions / Horned Reaper / chefkoch @ Team MediaPortal")] +[assembly: AssemblyCompany("Horned Reaper, Steve, Chefkoch @ Team MediaPortal")] [assembly: AssemblyProduct("FRITZ!Box Manager")] -[assembly: AssemblyCopyright("Copyright © S.Rinke / Horned Reaper / chefkoch @ Team MediaPortal 2009")] +[assembly: AssemblyCopyright("Horned Reaper, Steve, Chefkoch @ Team MediaPortal 2009")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] Modified: trunk/plugins/FritzBox/FritzBox/Settings.cs =================================================================== --- trunk/plugins/FritzBox/FritzBox/Settings.cs 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/Settings.cs 2011-12-03 16:12:08 UTC (rev 4363) @@ -38,6 +38,8 @@ private static List<String> _msnList; + private const string encryptionPassphrase = "j/§=sFf)39=Jd&wVZj37"; + #endregion Variables and constants #region Properties @@ -109,62 +111,68 @@ public static void Load() { - Log.Info("FRITZ!Box: Settings.Load()"); + Log.Info("FRITZ!Box: Settings.Load()"); - PhoneBook.LoadSettings(); + PhoneBook.LoadSettings(); - using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) - { - ExtensiveLogging = xmlreader.GetValueAsBool("fritzbox", "extensiveLogging", false); + using (MediaPortal.Profile.Settings xmlreader = new MediaPortal.Profile.Settings(Config.GetFile(Config.Dir.Config, "MediaPortal.xml"))) + { + ExtensiveLogging = xmlreader.GetValueAsBool("fritzbox", "extensiveLogging", false); - FritzBoxClient.Address = xmlreader.GetValueAsString("fritzbox", "address", "fritz.box"); - FritzBoxClient.Port = xmlreader.GetValueAsInt("fritzbox", "port", 1012); + FritzBoxClient.Address = xmlreader.GetValueAsString("fritzbox", "address", "fritz.box"); + FritzBoxClient.Port = xmlreader.GetValueAsInt("fritzbox", "port", 1012); - // notify settings - MaxNotifies = xmlreader.GetValueAsInt("fritzbox", "maxNotifies", 20); - CloseOnTimeout = xmlreader.GetValueAsBool("fritzbox", "closeOnTimeout", false); - NotifyTimeout = xmlreader.GetValueAsInt("fritzbox", "timeout", 10); - CloseOnConnectionClosed = xmlreader.GetValueAsBool("fritzbox", "closeOnConnectionClosed", true); + // notify settings + MaxNotifies = xmlreader.GetValueAsInt("fritzbox", "maxNotifies", 20); + CloseOnTimeout = xmlreader.GetValueAsBool("fritzbox", "closeOnTimeout", false); + NotifyTimeout = xmlreader.GetValueAsInt("fritzbox", "timeout", 10); + CloseOnConnectionClosed = xmlreader.GetValueAsBool("fritzbox", "closeOnConnectionClosed", true); - //if ((!CloseOnTimeout) || (NotifyTimeout == 0)) - //NotifyTimeout = -1; + //if ((!CloseOnTimeout) || (NotifyTimeout == 0)) + //NotifyTimeout = -1; - FilterMSN = xmlreader.GetValueAsBool("fritzbox", "filterMSNs", false); - string strMSN = xmlreader.GetValueAsString("fritzbox", "MSN", ""); - char[] charSeparators = new[] {';'}; - MSNList.AddRange(strMSN.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)); + FilterMSN = xmlreader.GetValueAsBool("fritzbox", "filterMSNs", false); + string strMSN = xmlreader.GetValueAsString("fritzbox", "MSN", ""); + char[] charSeparators = new[] { ';' }; + MSNList.AddRange(strMSN.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries)); - ShowMSNOnNotify = xmlreader.GetValueAsBool("fritzbox", "showMSNOnNotify", true); + ShowMSNOnNotify = xmlreader.GetValueAsBool("fritzbox", "showMSNOnNotify", true); - // media settings - StopMedia = xmlreader.GetValueAsBool("fritzbox", "stopMedia", true); - ResumeMedia = xmlreader.GetValueAsBool("fritzbox", "resumeMedia", true); - IncomingSound = xmlreader.GetValueAsString("fritzbox", "incomingSound", ""); + // media settings + StopMedia = xmlreader.GetValueAsBool("fritzbox", "stopMedia", true); + ResumeMedia = xmlreader.GetValueAsBool("fritzbox", "resumeMedia", true); + IncomingSound = xmlreader.GetValueAsString("fritzbox", "incomingSound", ""); - // new FritzManager settings - FmPassword = xmlreader.GetValue("FritzManager", "passwd"); - FmVBPath = xmlreader.GetValue("FritzManager", "vBPath"); - FmDialPort = xmlreader.GetValue("FritzManager", "dialport"); - //todo: check if the other way to load the currentmode also works - //string modestr = xmlreader.GetValue("FritzManager", "currentMode"); - //if (modestr != null && modestr != "") - //{ - // FmCurrentMode = (FritzBoxGuiMode)Enum.Parse(typeof(FritzBoxGuiMode), modestr); - //} - FmCurrentMode = (FritzBoxGuiMode) xmlreader.GetValueAsInt("FritzManager", "currentMode", 0); - FmUseInversSearch = xmlreader.GetValueAsBool("FritzManager", "useInversSearch", false); - FmDefaultAreacode = xmlreader.GetValue("FritzManager", "defaultAreacode"); - FmUpdateInterval = xmlreader.GetValueAsInt("FritzManager", "updateInterval", 0); - - // delete obsolete setting entries - xmlreader.RemoveEntry("fritzbox", "showMsnOnHeading"); - xmlreader.RemoveEntry("FritzManager", "abpath"); + // FritzManager settings + string decryptedPassword = StringEncryption.DecryptString(xmlreader.GetValue("FritzManager", "passwd"), encryptionPassphrase); + if (decryptedPassword != null) FmPassword = decryptedPassword; + else FmPassword = xmlreader.GetValue("FritzManager", "passwd"); // if the password was not encrypted read it in clear text (for older FritzBox Manager versions) + FmVBPath = xmlreader.GetValue("FritzManager", "vBPath"); + FmDialPort = xmlreader.GetValue("FritzManager", "dialport"); + //todo: check if the other way to load the currentmode also works + //string modestr = xmlreader.GetValue("FritzManager", "currentMode"); + //if (modestr != null && modestr != "") + //{ + // FmCurrentMode = (FritzBoxGuiMode)Enum.Parse(typeof(FritzBoxGuiMode), modestr); + //} + FmCurrentMode = (FritzBoxGuiMode)xmlreader.GetValueAsInt("FritzManager", "currentMode", 0); + FmUseInversSearch = xmlreader.GetValueAsBool("FritzManager", "useInversSearch", false); + FmDefaultAreacode = xmlreader.GetValue("FritzManager", "defaultAreacode"); + FmUpdateInterval = xmlreader.GetValueAsInt("FritzManager", "updateInterval", 0); - // loading current skin setting - MediaPortalSkin = xmlreader.GetValueAsString("skin", "name", "DefaultWide"); - } + // delete (convert) obsolete setting entries + xmlreader.RemoveEntry("fritzbox", "showMsnOnHeading"); + if (!String.IsNullOrEmpty(xmlreader.GetValue("FritzManager", "abpath"))) + { + FmVBPath = xmlreader.GetValue("FritzManager", "abpath"); + xmlreader.RemoveEntry("FritzManager", "abpath"); + } - WriteToLog(); + // loading current skin setting + MediaPortalSkin = xmlreader.GetValueAsString("skin", "name", "DefaultWide"); + } + + WriteToLog(); } public static void Save() @@ -200,7 +208,7 @@ xmlwriter.SetValue("fritzbox", "incomingSound", IncomingSound ); // new FritzManager settings - xmlwriter.SetValue("FritzManager", "passwd", FmPassword); + xmlwriter.SetValue("FritzManager", "passwd", StringEncryption.EncryptString(FmPassword, encryptionPassphrase)); xmlwriter.SetValue("FritzManager", "vBPath", FmVBPath); xmlwriter.SetValue("FritzManager", "dialport", FmDialPort); xmlwriter.SetValueAsBool("FritzManager", "useInversSearch", FmUseInversSearch); Property changes on: trunk/plugins/FritzBox/FritzBox/Skin ___________________________________________________________________ Added: svn:ignore + GenericSkin Modified: trunk/plugins/FritzBox/FritzBox/bin/Release/FritzBox.dll =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/FritzBox/bin/Release/FritzBox.pdb =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/FritzBox/obj/Debug/FritzBox.csproj.FileListAbsolute.txt =================================================================== --- trunk/plugins/FritzBox/FritzBox/obj/Debug/FritzBox.csproj.FileListAbsolute.txt 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/FritzBox/obj/Debug/FritzBox.csproj.FileListAbsolute.txt 2011-12-03 16:12:08 UTC (rev 4363) @@ -1,12 +1,5 @@ -D:\FritzBox\FritzBox\obj\Debug\ResolveAssemblyReference.cache -D:\FritzBox\FritzBox\obj\Debug\FritzBox.Properties.Resources.resources -D:\FritzBox\FritzBox\obj\Debug\FritzBox.FritzBoxConfig.resources -D:\FritzBox\FritzBox\obj\Debug\GenerateResource.read.1.tlog -D:\FritzBox\FritzBox\obj\Debug\GenerateResource.write.1.tlog D:\Programme\Team MediaPortal\MediaPortal\plugins\Windows\FritzBox.dll D:\Programme\Team MediaPortal\MediaPortal\plugins\Windows\FritzBox.pdb -D:\FritzBox\FritzBox\obj\Debug\FritzBox.dll -D:\FritzBox\FritzBox\obj\Debug\FritzBox.pdb D:\FritzBox\FritzBox\FritzBox\bin\Release\FritzBox.dll D:\FritzBox\FritzBox\FritzBox\bin\Release\FritzBox.pdb D:\FritzBox\FritzBox\FritzBox\bin\Release\Common.Utils.dll @@ -39,6 +32,13 @@ D:\FritzBox\FritzBox\bin\Release\BassRegistration.dll D:\FritzBox\FritzBox\bin\Release\MediaPortal.Support.dll D:\FritzBox\FritzBox\bin\Release\Interop.WMPLib.dll +D:\FritzBox\FritzBox\bin\Release\Interop.SHDocVw.dll D:\FritzBox\FritzBox\bin\Release\log4net.dll D:\FritzBox\FritzBox\bin\Release\Ionic.Zip.dll -D:\FritzBox\FritzBox\bin\Release\Interop.SHDocVw.dll +D:\FritzBox\FritzBox\obj\Debug\ResolveAssemblyReference.cache +D:\FritzBox\FritzBox\obj\Debug\FritzBox.Properties.Resources.resources +D:\FritzBox\FritzBox\obj\Debug\FritzBox.FritzBoxConfig.resources +D:\FritzBox\FritzBox\obj\Debug\GenerateResource.read.1.tlog +D:\FritzBox\FritzBox\obj\Debug\GenerateResource.write.1.tlog +D:\FritzBox\FritzBox\obj\Debug\FritzBox.dll +D:\FritzBox\FritzBox\obj\Debug\FritzBox.pdb Modified: trunk/plugins/FritzBox/FritzBox/obj/Debug/FritzBox.dll =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/FritzBox/obj/Debug/FritzBox.pdb =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/FritzBox/obj/Debug/GenerateResource.read.1.tlog =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/FritzBox/obj/Release/FritzBox.csproj.GenerateResource.Cache =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/FritzBox/obj/Release/FritzBox.dll =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/FritzBox/obj/Release/FritzBox.pdb =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/MpeRelease/FritzBox.mpe1 =================================================================== (Binary files differ) Modified: trunk/plugins/FritzBox/MpeRelease/FritzBox.xmp2 =================================================================== --- trunk/plugins/FritzBox/MpeRelease/FritzBox.xmp2 2011-12-01 20:35:25 UTC (rev 4362) +++ trunk/plugins/FritzBox/MpeRelease/FritzBox.xmp2 2011-12-03 16:12:08 UTC (rev 4363) @@ -559,7 +559,7 @@ <Items> <CompatibleVersionItem> <MinRequiredVersion>1.1.0.0</MinRequiredVersion> - <DesignedForVersion>1.1.7.4359</DesignedForVersion> + <DesignedForVersion>1.1.7.4362</DesignedForVersion> </CompatibleVersionItem> </Items> </CompatibleVersion> @@ -574,22 +574,30 @@ <GeneralInfo> <Name>FritzBox Manager</Name> <Id>8cb6bbc2-5473-4a63-a8f9-e0bec7c8c81c</Id> - <Author>Steve, Horned Reaper, Chefkoch</Author> + <Author>Horned Reaper, Steve, Chefkoch</Author> <HomePage>http://www.team-mediaportal.com/extensions/other/fritzbox-manager-phone-manager-callmonitor-for-avm-fritz-box</HomePage> - <ForumPage>http://forum.team-mediaportal.com/mediaportal-plugins-47/new-plugin-fritzbox-manager-update-merged-plugin-0-3-4-9-a-74531/</ForumPage> - <UpdateUrl /> + <ForumPage>http://forum.team-mediaportal.com/mediaportal-plugins-47/fritz-box-manager-english-forum-103177/#post817050</ForumPage> + <UpdateUrl>http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=118&cf_id=52</UpdateUrl> <Version> <Major>0</Major> <Minor>3</Minor> <Build>5</Build> - <Revision>4359</Revision> + <Revision>4362</Revision> </Version> - <ExtensionDescription>This plugin is a combination of the former fritz call monitor and the new fritz manager.</ExtensionDescription> + <ExtensionDescription>With FRITZ!Box Manager you can access several AVM FRITZ!Box informations in MediaPortal. + +Features: +- notification for incoming and outgoing calls via window, sound and contact picture +- MediaPortal Player is automatically paused and resumed on calls +- access call lists, voice box and phone book directly in MediaPortal +- voice box message notification in any MediaPortal screen +- connection establishment from call list, voice box or phone book entries +- language localization</ExtensionDescription> <VersionDescription /> <DevelopmentStatus>Stable</DevelopmentStatus> - <OnlineLocation /> - <ReleaseDate>2011-12-01T10:05:03.1294614+01:00</ReleaseDate> - <Tags /> + <OnlineLocation>http://www.team-mediaportal.com/index.php?option=com_mtree&task=att_download&link_id=118&cf_id=24</OnlineLocation> + <ReleaseDate>2011-12-03T16:47:11.414255+01:00</ReleaseDate> + <Tags>fritzbox, fritzbox manager, callmonitor</Tags> <Location>..\MpeRelease\FritzBox.mpe1</Location> <Params> <Items> @@ -1003,7 +1011,7 @@ </FolderGroup> </FolderGroups> <ProjectFilename>FritzBox.xmp2</ProjectFilename> - <UpdatePath1>C:\Documents and Settings\All Users\Application Data\Team MediaPortal\MediaPortal\language\strings_de.xml</UpdatePath1> + <UpdatePath1>update.xml</UpdatePath1> <UpdatePath2 /> <UpdatePath3 /> </ProjectSettings> Added: trunk/plugins/FritzBox/MpeRelease/update.xml =================================================================== --- trunk/plugins/FritzBox/MpeRelease/update.xml (rev 0) +++ trunk/plugins/FritzBox/MpeRelease/update.xml 2011-12-03 16:12:08 UTC (rev 4363) @@ -0,0 +1,167 @@ +<?xml version="1.0" encoding="utf-8"?> +<ExtensionCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <Items> + <PackageClass> + <Version>2.0</Version> + <Groups> + <Items> + <GroupItem Name="Default"> + <DisplayName>Default</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>Default</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="Blue3 Skin"> + <DisplayName>Blue3 Skin</DisplayName> + <DefaulChecked>false</DefaulChecked> + <Description>Blue3 Skin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="Maya Skin"> + <DisplayName>Maya Skin</DisplayName> + <DefaulChecked>false</DefaulChecked> + <Description>Maya Skin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="Black & White Skin"> + <DisplayName>Black & White Skin</DisplayName> + <DefaulChecked>false</DefaulChecked> + <Description>Black & White Skin</Description> + <Files> + <Items /> + </Files> + </GroupItem> + <GroupItem Name="Default Skin"> + <DisplayName>Default Skin</DisplayName> + <DefaulChecked>true</DefaulChecked> + <Description>Default Skin</Description> + <Files> + <Items /> + </Files> +... [truncated message content] |