The WinISDN Software Developer’s Kit is available for Visual Basic programmers
who wish to write applications to take advantage of ISDN communications.
The package supports the WinISDN driver that is supplied with the CyberSpace
cards, and programs written to this API will run on ISDN hardware from
other vendors supporting WinISDN.
The industry standard WinISDN Application Program Interface has been adopted by all the major ISDN hardware vendors and TCP/IP software vendors, and ISDN*tek is proud to have been one of the first hardware manufacturers to provide a WinISDN compatible driver. WinISDN is designed to take full advantage of the speed and reliability of ISDN, while avoiding the limitations associated with COM port diversion of ISDN-bound data. The WinISDN driver allows an application to utilize an efficient block-at-a-time transmission scheme, rather than the slower byte-at-a-time serial style transmission formerly associated with telecommunications. Point-to-Point Protocol, an integral part of TCP/IP communications, can be fully implemented in the application software without relying on driver intervention. And best of all, software authors need no particular knowledge of ISDN protocols in order to successfully write or adapt an application to ISDN.
In its simplest form, WinISDN allows you to place an ISDN call with just a few API calls:
ISDN_Open
ISDN_Connect
talk over a voice connection, or send data using
ISDN_read
ISDN_write
ISDN_Disconnect
ISDN_Close
After many years of no ISDN connections, no ISDN boards, no ISDN software, all of the pieces are coming together! Speed is up and prices are down! ISDN uses the same copper wires to your home office as Plain Old Telephone Service (POTS), but offers ten times the power of a 14.4 modem! You can use this power with Visual Basic 3.0+ to transfer files, photos, and voice, using the industry standard WinISDN.DLL.
'---------------------------------------------' ' Set up the Visual Basic data structures ' ' for program calls to the ISDN driver. ' ' These structures are included in the SDK ' ' in DEF files for both VB and for 'C' ' '---------------------------------------------' '--------------------- ' Structures for ISDNOpen '--------------------- Type BdConfig config_length As Integer board_id As Integer mem_address As Integer mem_range As Integer io_address As Integer io_range As Integer interrupt_req As Integer bandwidth As Integer version As String * 16 serial As String * 16 mfr_info As String * 64 num_lines As Integer reserved As String * 64 line_config_b_line(2) As line_config 'array of two spids (0) and (1) End Type '--------------------- ' Structures for ISDNconnect '--------------------- Type CallStructure call_handle As Integer board_id As Integer call_type As Integer send_queue_size As Integer recv_queue_size As Integer dial1 As String * 64 version As Integer line_id As Integer listen_mask As Integer reserved As String * 58 End Type Type ConnectEvent event_mask As Integer win_handle As Integer msg_value As Integer callback As Long End Type '--------------------- ' Structures for Call_Status report '--------------------- Type StatusStructure call_handle As Integer line_id As Integer call_ref As Integer call_type As Integer call_state As Integer b_channel As Integer lcn As Integer called As String * 64 calling As String * 64 reserved As String * 64 End Type '--------------------- ' Specify the hardware ' and line parameters '--------------------- BoardID% = 1 BdConfig.board_id = BoardID% BdConfig.mem_address = &hD000 BdConfig.interrupt_req = 10 BdConfig.line_config_b_line(0) = SPID1$ BdConfig.line_config_b_line(1) = SPID2$ '--------------------- ' Select hardware ' and load the driver '--------------------- Result% = ISDNOpen(BoardID%, BdConfig) '--------------------- ' Format the dialing information ' for starting a Voice call '--------------------- CallStructure.dial1 = DialingNumber$ CallStructure.board_id = BoardID% CallStructure.call_type = ISDN_B_Voice '--------------------- ' the event mask is set to accept ' any kind of incoming call, ' whether voice or data '--------------------- ConnectEvent.event_mask = ISDN_Accept_Any '--------------------- ' Place an ISDN call '--------------------- ConnID% = ISDNConnect(CallStructure, ConnectEvent) '--------------------- ' Get status of current call '--------------------- Error% = ISDNGetStatus (ConnID%, StatusStructure) Select Case StatusStructure.call_state Case CALL_STATE_OUT_CALL_PROC ' setting up the outgoing call Case CALL_STATE_DELIVERED ' Ringing the other phone Case CALL_STATE_ACTIVE ' call still active Case CALL_STATE_DISC_REQ ' hanging up the call Case CALL_STATE_NULL ' no active calls End Select '--------------------- ' Terminate the ISDN connection '--------------------- Error% = ISDNDisconnect(ConnID%) '--------------------- ' Deselect the hardware ' and unload the driver '--------------------- Error% = ISDNClose(BoardID%) '---------------------------------------------' ' End of WinISDN programming example. ' ' These code segments have been reduced ' ' to a minimal form for easier reading. ' ' The SDK includes far more detailed coding. ' '---------------------------------------------'