Sonstige Motorola Phone Tools - Nummern der eingehenden Anrufe?

Dieses Thema im Forum "Motorola Forum" wurde erstellt von Nuls2, 31. Dez. 2008.

  1. .me

    .me VIP Mitglied

    Registriert seit:
    2. Sep. 2006
    Beiträge:
    205
    Zustimmungen:
    0
    #21 .me, 2. Jan. 2009
    Zuletzt bearbeitet: 2. Jan. 2009
  2. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
    Sorry, ich bin noch nicht ganz klar im Kopf. ;)

    Also, getestet wird mit Motorola V3, RAZR² und Uraltnokias. Habe ich eine deutsche Simkarte in einer der Handies funktioniert das AT+CLCC nach dem RING einwandfrei. Sobald ich die norwegische Simkarte (Netz = "lebara") in das Handy friemel und es nochmal probiere, kriege ich eine Error-Response, deswegen war meine urspruengliche Frage, ob das tatsaechlich an der Simkarte liegen kann, was ich mir beim besten Willen nicht vorstellen kann. Meine Nummer wird auf dem Handydisplay angezeigt, das war's dann aber auch.

    Einige haben mich per PN gefragt, wozu das ueberhaupt gut sein soll, was ich da mache, ganz einfach zu erklaeren, ein Kunde von mir hat eine große Firma in Norwegen, und bietet Leuten, die Interesse an Produkten haben, per "Einmal Klingeln" auf das Telefon einen Rueckruf zu spaeterer Zeit an. Es rufen am Tag ca. 100-500 Leute auf den Handies an und bisher ist jede Rufnummer per Hand vom Handydisplay abgeschrieben worden, sowas kostet Zeit, ergo Geld, deswegen soll das automatisiert laufen. ;-)

    MfG
     
  3. Meiner Einer

    Meiner Einer Vertrauensmitglied

    Registriert seit:
    21. Aug. 2006
    Beiträge:
    5.745
    Zustimmungen:
    15
    Überprüfe doch mal bitte die Zeichensatzcodierung. Du kannst nicht zwingend davon ausgehen, das automatisch ASCII gesendet bzw. zurückgeliefert wird.
     
  4. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
    Im Buffer steht definitiv nicht mehr als <Command>\r\rERROR - in ASCII. ;-)

    MfG
     
  5. Meiner Einer

    Meiner Einer Vertrauensmitglied

    Registriert seit:
    21. Aug. 2006
    Beiträge:
    5.745
    Zustimmungen:
    15
    Ja, dann werd ich das mal näher erklären.
    Der Fehler tritt auf, sobald Du eine norwegische Sim ins Handy einlegst. Da sich der Zeichensatz vom Deutschen etwas unterscheidet, schaltet das Handy auf Unicode. Kannst Du einfach überprüfen, indem Du mal damit eine SMS an eine deutsche Nummer schickst und landesspezifische Buchstaben in der SMS verwendest.

    Möglicherweise erwartet also das Handy den Befehl in Unicode oder aber der Rechner schickt bereits Unicode und das Handy erwartet trotzdem nur Ascii.
     
  6. .me

    .me VIP Mitglied

    Registriert seit:
    2. Sep. 2006
    Beiträge:
    205
    Zustimmungen:
    0
    Hier noch der Nachtrag bezüglich des Clip-Befehls aus einem Original-Motorola-PDF.
    Ich habe es leider nicht besser.

    Mir ist auch nicht verständlich, warum es dann nicht (bei allen) funktioniert,
    da müssen die software-schreibenden Russen wohl gepfuscht haben.
     

    Anhänge:

  7. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
    Gut, dann hab ich ja jetzt zwei Moeglichkeiten. Entweder ich sende, nachdem der Listen auf COM-X erfolgreich war

    at+cscs="ASCII", oder ich aendere einfach meine Kodierung des Streams. Was dabei eleganter ist weiß ich nicht, aber langsam finde ich Gefallen an diesem Handygedoehns, hab mir, nachdem ich mich im Studium klaeglich in Assembler herumgeschlagen habe geschworen, dass ich nieeeee nicht wieder was mit Schnittstellen machen werde, aber das ist echt ziemlich interessant.. :P

    MfG
     
  8. .me

    .me VIP Mitglied

    Registriert seit:
    2. Sep. 2006
    Beiträge:
    205
    Zustimmungen:
    0
    Das wäre in Deutschland verboten, weil es sich um Übermittlung einer Nachricht ohne herstellung einer gebührenpflichtigen Verbindung handelt :D
     
  9. Meiner Einer

    Meiner Einer Vertrauensmitglied

    Registriert seit:
    21. Aug. 2006
    Beiträge:
    5.745
    Zustimmungen:
    15
    Kein Kommentar - ich hab da auch so meine Erfahrungen...

    Noch was - normalerweise müßte Dein Programm so wie es ist in Norwegen mit norwegischer Sim und Handy dort korrekt funktionieren, da die Lokalisation ja wieder stimmt.
     
  10. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
    [​IMG]

    Danke, Motorola! ... :P

    Tja, jetzt kommt der Haken, die Handies sind in Deutschland - und dort bleiben sie auch, insofern muss ich jetzt tricksen, ich weiß nur nicht, ob das so Gesund ist einfach mal pauschal das Encoding des Handies zu aendern...

    MfG
     
  11. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
    Danke an Alle, es war tatsaechlich die Lokalisierung. Fuer Die, die's interessiert hier nun die vollstaendige Loesung.

    Code:
    using System;
    using System.Collections.Generic;
    using System.Drawing;
    using System.Windows.Forms;
    using System.IO;
    using System.IO.Ports;
    using System.Text;
    using System.Text.RegularExpressions;
    
    namespace PhoneCatalog
    {
    	public partial class MainForm : Form
    	{
    	    SerialPort _SerialPort;
    	    string _LastNumber = String.Empty;
    	    
    		public delegate void UpdateTextCallback(Color color, string text);
    		public delegate void AddListBoxItemCallback(string text);
    	    
    	    
    		public MainForm()
    		{
    			InitializeComponent();
    		}
    		
    		void Button1Click(object sender, EventArgs e)
    		{
    			bool exceptionOccured = false;
    			
    			string comPort = String.Format("COM{0}", serialPortTextBox.Text);
    			_SerialPort = new SerialPort(comPort, 9600, Parity.None, 8, StopBits.One);	
    			_SerialPort.RtsEnable = true;
    			_SerialPort.Encoding = Encoding.ASCII;			
    			try {
    				_SerialPort.Open();		
    			} catch {
    				exceptionOccured = true;
    				AppendColoredText(Color.Red, "Dieser COM-Port ist belegt oder nicht vergeben!");
    			}
    			if (!exceptionOccured) {
    				//HACK: Localization is a bitch!
    				_SerialPort.Write("at+cscs=\"ASCII\"\r");
    				_SerialPort.Write("at+clip=1\r");				
    				AppendColoredText(Color.Green, String.Format("*** Lausche auf {0}", comPort));
    				_SerialPort.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);					
    			}
    		}
    		
    		private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
    		{
    			string buffer = _SerialPort.ReadExisting();
    			if (buffer.Contains("RING")) {			
    				_SerialPort.Write("AT+CLCC\r");
    			}
    			
    			if (buffer.Contains("+CLCC") || buffer.Contains("+CLIP")) {
    				try {
    					AppendColoredText(Color.Blue, buffer);
    					string number = Regex.Match(buffer, "\"(.+?)\"").Groups[1].Value;
    					
    					if (_LastNumber != number && number != String.Empty) {
    						_LastNumber = number;
    						AppendColoredText(Color.Blue, String.Format("*** Anruf von Nummer: {0}", number));
    						AddNumber(number);
    					}
    				} catch (Exception ex) {
    					MessageBox.Show(ex.Message);
    					AppendColoredText(Color.Red, "Fehler (Nummer unterdrückt?!)");
    				}
    			}
    		}		
    		
    		private void AddItem(string text) {
    			if (phoneNumberListBox.InvokeRequired) {
    				object str = text;
    				phoneNumberListBox.Invoke(new AddListBoxItemCallback(AddListBoxItem), new object[]{str});
    			} else {
    				phoneNumberListBox.Items.Add(text);
    			}
    		}
    		
    		private void AddListBoxItem(string text) {
    			phoneNumberListBox.Items.Add(text);
    		}
    		
    		private void AppendColoredText(Color color, string text) 
    		{
    			if (LogRichTextBox.InvokeRequired) {
    				object col = color;
    				object tex = text;
    				LogRichTextBox.Invoke(new UpdateTextCallback(UpdateText), new object[]{col, tex});				
    			} else {
    				LogRichTextBox.AppendText(Time);
    				LogRichTextBox.SelectionColor = color;
    				LogRichTextBox.AppendText(String.Format("{0}\r\n", text));				
    			}
    		}
    		
    		private void UpdateText(Color color, string text) 
    		{
    			LogRichTextBox.AppendText(Time);
    			LogRichTextBox.SelectionColor = color;
    			LogRichTextBox.AppendText(String.Format("{0}\r\n", text));					
    		}
    		
    		private string Time {
    			get {
    				return String.Format("[{0}:{1}:{2}]: ", DateTime.Now.Hour.ToString("00"),
    				                     					DateTime.Now.Minute.ToString("00"),
    				                     					DateTime.Now.Second.ToString("00"));
    				                     
    			}
    		}		
    		
    		private void AddNumber(string number) 
    		{
    			if (File.ReadAllText("telefonnummern.txt").Contains(number)) {
    				AppendColoredText(Color.Blue, "*** Diese Nummer existiert schon, füge sie nicht hinzu!");
    			} else {
    				AppendColoredText(Color.Green, String.Format("*** Nummer: {0} hinzugefügt!", number));
    				AddItem(number);
    				StreamWriter sw = new StreamWriter("telefonnummern.txt", true);
    				sw.WriteLine(number);
    				sw.Close();
    			}
    		}
    		
    		void MainFormLoad(object sender, EventArgs e)
    		{		
    		}
    		
    		void Button2Click(object sender, EventArgs e)
    		{
    			_SerialPort.Write(textBox1.Text + "\r");
    			textBox1.Text = String.Empty;
    		}
    	}
    }
    
     
  12. .me

    .me VIP Mitglied

    Registriert seit:
    2. Sep. 2006
    Beiträge:
    205
    Zustimmungen:
    0
    Könntest Du mir freundlicherweise die Version mit dem "Befehl senden" überlassen?
     
  13. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
    So, ich muss doch enttaeuscht resignieren, ich habe mich in der Simkarte geirrt, das Problem existiert immernoch.

    Wenn Deutsche Karte drinnen - Alles in Ordnung, sobald die Lepra eh.. Lebara Karte drinnen ist - nada.

    +CLCC ERROR...

    Am Encoding kanns nicht liegen, wenn ich meinen Stream auf Encoding.Unicode setze versteht das Handy wenig bis gar nichts. ;)

    Im Anhang ist die Version mit dem Befehl-Senden.

    MfG
     

    Anhänge:

  14. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
    Nochmal kurz eine Frage, nach dem AT+CLIP Google Wettlauf nach einer Stunde habe ich bemerkt, dass dieses Kommando eigentlich funktionieren *muss*.

    Auf allen Handies hier bekomme ich einen Error, ohne Code, muss ich dazu irgendwas (de-)aktivieren?

    MfG
     
  15. .me

    .me VIP Mitglied

    Registriert seit:
    2. Sep. 2006
    Beiträge:
    205
    Zustimmungen:
    0
    Danke für die BefehlsVersion, schaue ich mir gleich an.

    Zum Problem:
    Es gibt von den Providern eine SIM-Toolkit-Funktion, mit der kann man allerlei implementieren und evtl. auch sperren.
    Keine Ahnung, aber vielleicht hat es etwas damit zu tun.


    In Deiner "alten" Version habe ich folgendes gefunden:

    1. wenn keine Telefonnummern.txt vorhanden ist, dann meldet er dies zwar, macht aber dann - auch nach Anlage derselben - nicht mehr weiter, Neustart erforderlich.
    Vorschlag: prüfen, ob vorhanden, wenn nicht = neuanlegen.

    2. PhoCat1 - Fehlermeldung betrachten, nach dem Wegklicken kommt noch PhoCat2, dann Neustart erforderlich.

    Fazit: mir darf man nix in die Hand geben :rolleyes:


    Deine Frage von 13:57 habe ich nicht verstanden?
     

    Anhänge:

    #35 .me, 2. Jan. 2009
    Zuletzt bearbeitet: 2. Jan. 2009
  16. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
    Das ist in der Befehlsversion bereits gefixt, ich habe mich vorher drauf verlassen, dass das Array genau 7 Elemente hat, wenn nicht -> Out of Bounds. :P

    Ist aber nun behoben.

    Wenn ich mir alle verfuegbaren AT Commands anzeigen lasse ist AT+CLIP auch dabei.. Hmm, die Frage, die ich mir stelle ist, warum wird die Nummer am Handydisplay angezeigt? Gibt's sonst noch irgendetwas, was ich evtl. noch nicht kenne? Ich hab mich mal durch saemtliche AT Commands gewuselt aber bis jetzt nichts Sinniges dazu gefunden.

    MfG
     
  17. .me

    .me VIP Mitglied

    Registriert seit:
    2. Sep. 2006
    Beiträge:
    205
    Zustimmungen:
    0
    HiHi, das Array hat ja auch 7 Elemente, der Kalauer entsteht dann, wenn ein Element leer ist, weil die Kommata dann direkt aufeinander folgen.
    Es ist ja auch eine Gemeinheit anonym anzurufen :)

    Daß das CLIP dabei ist und trotzdem nicht richtig funktioniert, das haben die Russen verbockt.
    Normal müsste man Motorola bei der ETSI anprangern, deren Regeln besagen, daß ein Kommando - wenn es implementiert ist - auch richtig funktionieren muss.

    Aber hast Du schon mal einem Ochsen ins Horn gekniffen? :(

    Also ich habe / kenne da auch keine andere Lösung.

    Aber das mit der SIM würde mich doch schon interessieren. Haste noch eine über?
     
  18. Nuls2

    Nuls2 Neues Mitglied

    Registriert seit:
    30. Dez. 2008
    Beiträge:
    20
    Zustimmungen:
    0
  19. Meiner Einer

    Meiner Einer Vertrauensmitglied

    Registriert seit:
    21. Aug. 2006
    Beiträge:
    5.745
    Zustimmungen:
    15
    Wie jetzt? Es ging und dann wieder nicht?
    1. Schau mal im Handy nach, welche Lokalisierung dort eingestellt ist. Schalte evtl. die Automatik ab und stelle es per Hand auf Norwegen bzw. DE und teste jeweils mal, wie es sich verhält.

    2. Das Handy zeigt die Nummer an. Außerdem wird das in der Liste für "letzte Anrufe" abgelegt. Ich weiß jetzt nicht, wo diese Liste gespeichert ist (Seem oder Datei), aber es sollte möglich sein, diese auch auszulesen (den jeweils aktuellsten Eintrag).
     
    #39 Meiner Einer, 2. Jan. 2009
    Zuletzt bearbeitet: 2. Jan. 2009
  20. .me

    .me VIP Mitglied

    Registriert seit:
    2. Sep. 2006
    Beiträge:
    205
    Zustimmungen:
    0
    Danke, lohnt sich nicht, kommen in diesem Leben nicht mehr nach Norwegen :D

    CLIP geht bei Motos AFAIR überhaupt nicht, zumindest nicht bei denen, die ich schon habe / hatte.

    Bei (älteren) Siemens und Ericcson ging es aber richtig.

    Macht ja aber nichts, Motorola gibts eh bald nicht mehr am Markt, die zerfleischen sich ja gerade selbst.
     
Die Seite wird geladen...