locked
TAPI: keine Statusmeldungen für Anrufe RRS feed

  • Frage

  • Hallo!

    Ich hoffe, ich bin hier in diesem Forum richtig. Ich bin neu hier, also bitte entschuldigt, falls das falsche Unterforum gewählt haben sollte.

    Es geht um ein Problem, von dem ich schon öfter im Netz gelesen habe - nur leider immer ohne Antwort. Ich möchte einen Datenanruf tätigen und hierfür die TAPI verwenden. Ich habe viele Beispiele hierzu (u.a. auch einen C# Wrapper) gefunden und getestet (und natürlich auch diverse eigene Anläufe gestartet). Überall habe ich das gleiche Problem: Der anrufende Teilnehmer kommt niemals in den Status LINECALLSTATE_CONNECTED, obwohl die Verbindung definitiv steht (hab das mit einem GSM-Modem über AT-Kommandos getestet). Ich habe wirklich alles probiert - ich rufe den lineGetCallStatus alle 5 Sekunden auf, erhalte jedoch immer LINECALLSTATE_PROCEEDING - Statusereignisse werden auch nicht aufgerufen. Würd euch gern Code schicken, aber das muss irgendein grundlegendes Problem sein, da das gleiche Verhalten auch bei allen Beispielen auftaucht. Es gibt doch aber Programme, die über Windows Mobile Datenverbindungen aufbauen....

    Ich schreib nicht gern in Foren, da das dazu verleitet, eher zu fragen als nach einer Lösung zu suchen. Aber diesmal sehe ich keine andere Möglichkeit - ich weiss einfach nichtmehr, was ich noch ausprobieren soll.

    Vielleicht kennt ja einer von Euch das Problem und die entsprechende Lösung. Das würde mir wirklich sehr helfen.

    Dankeschön!
    /Daniel

    PS: Getestet hab ich auf folgenden Telefonen:
    HTC Touch HD
    HTC Touch Diamond 2
    HTC XDA Orbit

    PPS:
    Bei Sprachanrufen erhalte ich
    LINECALLSTATE_PROCEEDING
    LINECALLSTATE_CONNECTED
    und dann irgendwann
    LINECALLSTATE_IDLE
    Sonntag, 7. März 2010 23:04

Alle Antworten

  • Hallo!

    Ich habe noch etwas im Netz recherchiert und bin auf diese Seite hier gestoßen: http://social.microsoft.com/Forums/zh-CN/1729/thread/69e0a3ce-00f0-4564-926e-02d29df633d5 . Es schaut also für mich so aus, als ob eine unter TAPI liegende Schicht (RIL?) die Statusmeldungen unterdrückt oder nicht korrekt nach oben sendet.

    Weiss jemand von Euch, wie ich den RIL-Treiber anpassen kann, sodass ich die Meldungen bekomme? Das muss doch irgendwie möglich sein, dass ich einen Datenanruf tätige - ich werd hier noch verrückt. Hat jemand ein Workaround (z.b. PASSTHROUGH - also direkte AT-Kommandos [hab ich auch schon versucht, aber ich bekomme irgendwie keine Antworten - habt Ihr funktionierende Beispiele?) der funktioniert? Ich habe kein Problem damit, den Transfer über AT-Kommandos zu machen - ich will einfach nur Daten senden.

    Ich sponsore nen Kasten Bier demjenigen, der mir weiterhelfen kann - ich bekomme hier noch graue Haare, wenn ich nicht bald ne Lösung finde!

    DANKE!
    Montag, 8. März 2010 12:52
  • Hi,

    die RIL ist nicht für Entwickler gedacht, sondern für OEMs. Somit wirst du diese nicht austauschen können.
    Leider kann ich dir bei einer Datenverbindung leider auch nicht weiterhelfen. Sorry.

    Gruß, Peter
    This posting is provided "AS IS" with no warranties, and confers no rights.
    Montag, 8. März 2010 13:10
  • Hallo Peter,

    danke für Deine Antwort! Ich habe soetwas über "RIL nur für OEM" gelesen, als ich nach einer Lösung gesucht hab. Ich dachte da an irgendwelche Registry Anpassungen oder Methodenaufrufe, die die Statusmeldungen aktivieren. Bei der TAPI sind ja beispielsweise alle LINEDEVSTATE Mitteilungen von Hause aus deaktiviert - vielleicht ist das bei RIL auch so. Naja - war nur ein Griff nach dem einzigen Strohhalm, den ich gefunden hab. Schade, dass das nichts war.

    Ich kann auf meinem Handy 3D-Spiele schreiben, Sprache in Text wandeln, Radio hören, .... jede Spielerei ist möglich - nur keine elementaren Datenanrufe, das nervt mich grad extrem. Ich bin so weit und komme nichtmehr weiter.

    Trotzdem vielen Dank für Deine Antwort!

    /Daniel
    Montag, 8. März 2010 20:00
  • Unter http://msdn.microsoft.com/en-us/library/aa920441.aspx findest Du die RIL Dokumentation.
    Es ist keine offiziell unterstütze API für den Anwendungsentwickler (Es sei denn Du hast nur 6.5.3 Geräte, im DTK ist es nämlich dokumentiert) auf Windows Mobile, die OEMs können da also auch was verdrehen und es kann vorkommen das nicht alle Geräte gleich reagieren.
    http://patrickgetzmann.spaces.live.com/blog
    Dienstag, 9. März 2010 07:20
  • Danke Patrick,

    hab hier noch ein interessantes Dokument zum RIL gefunden http://www.intrinsyc.com/docs/services/RIL_whitepaper_MS_Intrinsyc_June2004.pdf . Ich hoffe, dass die Person/Firma das veröffentlichen durfte (RIL im konkreten ist ja wohl ein Microsoft-Geheimnis, das nicht jeder bekommt). Wenn nicht, werde ich den Link sofort aus meinem Beitrag wieder entfernen. Es ist interessant zu lesen, wie RIL funktioniert, aber zu meinem Problem habe ich dort leider auch nichts gefunden.

    Werde jetzt versuchen, über Passthrough direkt an die AT-Kommandos zu kommen - wie hier beschrieben http://www.rainyjay.com/tapi/faq_passthough.htm . Bitte drückt die Daumen, dass es funktioniert. Ansonsten muss ich mein Projekt erstmal auf Eis legen und aufgeben. Schade drum :(.

    Viele Grüße
    /Daniel


    Edit;

    1) Weiss vielleicht jemand, ob ich über die TSPI noch etwas verändern kann? Die liegt noch zwischen RIL und TAPI. Die Funktionen sehen aber irgendwie genauso aus, wie die der TAPI.

    2) Die TAPI für PC's unterstützt eine Funktion, die lineSetMediaControl heißt. Interessant ist hierbei die Struktur LINEMEDIACONTROLCALLSTATE ( http://msdn.microsoft.com/en-us/library/ms736100%28VS.85%29.aspx). Schaut so aus, als könne man dort die gewünschten CALLSTATE Meldungen anpasen (kann aber auch sein, dass ich das in meiner Hoffnung auf irgendeine Lösung jetzt in diverse Funktionen hinein lese). Leider finde ich die Funktion nicht in der TAPI für mobile Geräte. Vielleicht gibt es hierfür vielleicht irgendeinen Workaround?

    Dienstag, 9. März 2010 12:13