moose2004 Posted July 15, 2010 Share Posted July 15, 2010 I have been rewritting our system for a few months now. I noticed when i add the TAPI.Int() call function, my clt file would crash after a few hours. Also, after the clt file is loaded, the user then closes DF. This will display a "Do you want to send to Microsoft error" message. So i created a new clt file a added the TAPI code from the help file: //CODE private string strTTS = 'This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test.' TAPI.Init("MultiTech Systems MT5634ZPX-PCI") // MultiTech Modem TAPI.Dial("4050000000") // Put your number TAPI.Speak('<VOICE REQUIRED="NAME=VW Paul"><VOLUME LEVEL="100"><RATE SPEED="0"><PITCH MIDDLE="0">' + strTTS + '</PITCH></RATE></VOLUME></VOICE>') delay(15) TAPI.Drop() // END Ran the sequence worked fine (like it should). If you leave the clt file open, it will error out with the "Do you want to send to Microsoft error" message. Does anyone have a clt file with TAPI code that works without erroring over a period of time that i could look at?? I have attached the sample clt file with the code above. Any help would be great! Thanks TAPI.ctl Link to comment Share on other sites More sharing options...
AzeoTech Posted July 15, 2010 Share Posted July 15, 2010 What operating system are you using? Link to comment Share on other sites More sharing options...
moose2004 Posted July 15, 2010 Author Share Posted July 15, 2010 Windows XP 32 bit. I have even tested this on a different Window XP machine and getting the same results. Link to comment Share on other sites More sharing options...
AzeoTech Posted July 15, 2010 Share Posted July 15, 2010 Well, first of all, TAPI is totally async, so you don't really want to create a single sequence to do what you did. It'll probably work, but doesn't give you any control. You need to use events. So, you trigger the dial, then use the connect event to trigger the speak, then use the speak complete event to trigger the drop(). That, however, is probably not the crash problem. That is likely caused by wrong versions of TAPI and SAPI. XP will likely not want to run the absolute latest versions available for Windows 7 / vista. Link to comment Share on other sites More sharing options...
moose2004 Posted July 15, 2010 Author Share Posted July 15, 2010 In my monitoring system i use the TAPI.Connect, TAPI.Disconnect, TAPI.SpeakComplete...functions. I am setting global variables based on different TAPI states. That all works. I have narrowed it down to the TAPI.Init(). If TAPI.Init is commented out the clt file it runs forever. If i uncomment theTAPI.Init and save it, then shut the clt file down and reopen it without preforming a callout the clt file will crash within 30 minutes. I am setting the TAPI.Init() in a startup sequence when the clt is lunched. Do i need to install some old TAPI drivers?? Link to comment Share on other sites More sharing options...
moose2004 Posted July 15, 2010 Author Share Posted July 15, 2010 Also, I have attached another clt file. This has all the different TAPI states i am using. Side Note: If you try and run these clt files they will not error out unless you have the same modem model for TAPI to initialize. So if it does not exist or you misspelled the modem name the clt file will not error. TTS.ctl Link to comment Share on other sites More sharing options...
AzeoTech Posted July 15, 2010 Share Posted July 15, 2010 There are always other TAPI devices on a system. You can get the list using the TAPI.GetDeviceList(). Have you tried just initing one of the others just to see if it still causes the crash you are seeing? Just init() it. Don't do anything (since this doesn't matter). If it doesn't crash, then there might be an issue with the modem driver itself. Link to comment Share on other sites More sharing options...
moose2004 Posted July 15, 2010 Author Share Posted July 15, 2010 It only errors on the MultiTech System Modems. I have tried two different MultiTech System modem on two different Window's XP machines. I am getting the same result! Both modem have updated drivers. I am getting a Windows 7 machine in today and will retest. Link to comment Share on other sites More sharing options...
moose2004 Posted July 16, 2010 Author Share Posted July 16, 2010 Well got a Windows 7 32 bit machine, loaded the drivers for MT9234ZPX-UPCI MultiTech System modem. Windows sees the modem device. DF will not display any modems via '? TAPI.GetDeviceList()' command in Windows 7. Why?? I can run the sequence that contains the TAPI.Dial(), no dial out, no errors. Noting happens. In Windows XP something intrusting i found. If you rerun the TAPI.Dial() function say every 10 minutes the clt file functions properly, runs without erroring out. Going on two days now. All it needs to do is attempt to dial. Here is the code. //CODE private string strTTS = "Testing. Testing. Testing. Testing. Testing. Testing. Testing." TAPI.Init("MultiTech Systems MT9234ZPX-UPCI") //TAPI.Init() for Callouts while(1) delay(600) TAPI.Dial("") TAPI.Speak('<VOICE REQUIRED="NAME=VW Paul"><VOLUME LEVEL="100"><RATE SPEED="0"><PITCH MIDDLE="0">' + strTTS + '</PITCH></RATE></VOLUME></VOICE>') TAPI.Drop() endwhile //END Link to comment Share on other sites More sharing options...
AzeoTech Posted July 16, 2010 Share Posted July 16, 2010 Almost all DAQFactory crashes are related to external forces. We try and catch them, but sometimes it just can't be prevented. In this case, the external force is the MultiTech driver, as you have shown by the fact that it only crashes when using those modems. I know that these modems have worked before, so perhaps its a new bug they've introduced. It is funny though that pinging the hardware with an empty dial() causes things to be ok. As for Windows 7, I know TAPI works under Windows 7 as I've talked to others who have done it. My guess is that you need to update TAPI and SAPI. If you can't find the device in GetDeviceList(), then you can't Init() it, so you can't Dial() it. Also, not all modems are TAPI compliant, so just because it shows in the Windows modem list, doesn't mean it will show in GetDeviceList(). I'm not saying that your modem isn't TAPI compliant, but rather that version mismatches between drivers, TAPI etc are causing it not to show up. Link to comment Share on other sites More sharing options...
mike72 Posted December 13, 2012 Share Posted December 13, 2012 hi guru your last post in this article about finding modems is interesting. a few months ago i wrote in the command line, tapi.getdevicelist() and recieved my modem list. tried it again yesterday and the command line repeated my typing in blue typing. is there something i am doing wrong or something in windows i can do to see the modems again? Link to comment Share on other sites More sharing options...
AzeoTech Posted December 13, 2012 Share Posted December 13, 2012 The command line repeated, or it displayed in the larger box above the command line? Maybe a screen shot? Link to comment Share on other sites More sharing options...
mike72 Posted December 14, 2012 Share Posted December 14, 2012 sorry, its displayed in the larger box, in blue. pretty sure its just another silly mistake somewhere my side. mike Link to comment Share on other sites More sharing options...
AzeoTech Posted December 14, 2012 Share Posted December 14, 2012 That's just the system echoing the command you typed. The result is empty so below it is just an empty line. Did you remember the print statement. It should be: ? tapi.getDeviceList() if you want it to appear in the command / alert window. I know I forget the ? sometimes, especially since the Chrome debugger equivalent of the command/alert window doesn't require it. Link to comment Share on other sites More sharing options...
mike72 Posted December 14, 2012 Share Posted December 14, 2012 humm..... feel like a right idiot now. thats what i was looking for, thanks again guru. now i can start on the next part of my project. mike ? tapi.getDeviceList() {"Standard 56000 bps Modem", "HUAWEI Mobile Connect - 3G Modem", "ZTE Proprietary USB Modem", "RAS PPPoE Line0000", "RAS VPN Line 0", "WAN Miniport (L2TP)", "IPCONF LINE", "H323 Line"} Link to comment Share on other sites More sharing options...
mike72 Posted December 14, 2012 Share Posted December 14, 2012 looks like i need to abandon the modem project, it wont initiate. oh well, thanks for all your help guru mike ?tapi.GetDeviceList() {"Standard 56000 bps Modem", "ZTE Proprietary USB Modem", "RAS PPPoE Line0000", "RAS VPN Line 0", "WAN Miniport (L2TP)", "IPCONF LINE", "H323 Line", "HUAWEI Mobile Connect - 3G Modem"} TAPI.Init("HUAWEI Mobile Connect - 3G Modem") 12/14/12 09:30:07.955 TAPI Error: Line:'HUAWEI Mobile Connect - 3G Modem' Unable to open the device in InteractiveVoice mode, error=ERR_INVALMEDIAMODE. Link to comment Share on other sites More sharing options...
AzeoTech Posted December 14, 2012 Share Posted December 14, 2012 Don't feel like an idiot. As I said, I do the same thing all the time. As for your second post, TAPI only works on modems that support voice, which basically means one that has a chip that can generate voice tones. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.