Tapi gibt nur LINE_LINEDEVSTATE als Messages
-
Hallo,
ich sitze gerade an der Steuerung einer Telefonanlage per TAPI.
Anrufe per Mausklick zu starten, klappt auch wunderbar. Nun waere es auch schoen, eingehende Anrufe mit deren Telefonnummer mitzukriegen.
Leider hat das bisher noch nicht geklappt. Ich kann zwar Messages abfangen, erhalte jedoch immer LINE_LINEDEVSTATE als Message. Sobald ein Anruf eingeht, kommt diese Message ebenfalls, und er erste Parameter enthaelt den Wert LINEDEVSTATE_OTHER.Was koennte eine Ursache dafuer sein?
Hier der Code zur Initialisierung:
HLINEAPP m_hLineApp; // application's usage handle for TAPI HLINE m_hLine; HCALL m_hCall; int m_nDevID; //----------------- LINEINITIALIZEEXPARAMS stInitParams; LINEDEVCAPS *lpDevCaps = NULL; LONG lRet; DWORD dwMediaMode; DWORD dwNumDevs =0; DWORD dwTAPIVer = 0x00020000; DWORD dwTmpVer =0; LINEEXTENSIONID stExtID; dwMediaMode = LINEMEDIAMODE_AUTOMATEDVOICE;// for voice this should be memset(&stInitParams, 0, sizeof(LINEINITIALIZEEXPARAMS)); stInitParams.dwTotalSize = sizeof(LINEINITIALIZEEXPARAMS); stInitParams.dwOptions = LINEINITIALIZEEXOPTION_USEEVENT; lRet = lineInitializeEx(&m_hLineApp, NULL, NULL, NULL, &dwNumDevs, &dwTAPIVer, &stInitParams); lRet = lineOpen(m_hLineApp, m_nDevID, &m_hLine, dwTAPIVer, 0x00000000, 0, LINECALLPRIVILEGE_OWNER, dwMediaMode, NULL); [...] lRet = lineSetStatusMessages(m_hLine, 0x1ffffff, 0);Und zum Checken der Nachrichten...:
LINEMESSAGE msg; while (lineGetMessage(m_hLineApp, &msg, 100) == 0) { switch(msg.dwMessageID) { case LINE_LINEDEVSTATE: //MessageBox(NULL, "linedevstate", "test callback Call", MB_OK); char code[40]; ultoa(msg.dwParam1, code, 10); MessageBox(NULL, code, "LINE_LINEDEVSTATE", MB_OK); break; case LINE_APPNEWCALL: MessageBox(NULL, "newCall", "linemessage", MB_OK); break; case LINE_CALLSTATE: [...]Wie gesagt erhalte ich nur LINE_LINEDEVSTATE Messages, auch bei eingehenden Anrufen oder beim Auflegen. Ich habe auch mir die Message schon vor dem Switch ausgeben lassen, da erhielt ich auch nie andere Codes.
Hab' ich irgendwas Dummes uebersehen? Oder ist es auch moeglich, dass die Telefonanlage solche Dinge nicht unterstuetzt?
Danke schonmal!
-
Mit Sicherheit wird hier auch ein anderer Mediamode verwendet.
Du musst evtl. auch LINEMEDIAMODE_INTERACTIVEVOICE erwarten!dwMediaMode = LINEMEDIAMODE_AUTOMATEDVOICE|LINEMEDIAMODE_INTERACTIVEVOICE;
-
Ach, super, genial, jetzt klappt's, danke!!!