version 0.1 Phone interface: Phone functions have been integrated into the TI server s_wait_for_ring waits for some number of rings. The default is about 3 (but see below). A new function, s_set_rings (file_descriptor, number), sets the number of rings that s_wait_for_ring waits. BUT, the actual meaning of this number may vary from board to board and installation to installation. For example, with the Dialogic board, the initial circuit connect seems to cause a ring (the same as the faint chirp you hear before ring on your cheap $10 phones). s_ring has been modified. It attempts to tell you if the phone is currently ringing. Again, there's some variation between boards. On the Dialogic, it tells you more or less whether the ring voltage appears right now. But sometimes there are spikes during the connection which can cause confusion. Seems likely that if s_ring returns true twice in succession, the phone is ringing. Similarly, if s_ring returns false twice, it isn't ringing. Things are a bit different for the TI. On the TI, s_ring returns true if the phone has rung since s_ring (or s_flush_ring) was last called. The TI seems to report two rings for each audible ring, one at the beginning of the ring and one at the end. But maybe not for the first ring?? But in any event you're unlikely to see two successive calls to s_ring return true. "Monitor" command: Basically this command connects the phone line to the speaker so you can "listen in". It does not enable the microphone for the Dialogic, as there seems to be no way to do so. This command is not implemented for the TI. It's not clear that it can be, but if anyone every wants to use it I'll try! File system utilities: s_find_first (file_descriptor, wildcard_template) and s_find_next (file_descriptor) provide the equivalent of Unix "ls" and DOS "dir" commands. First call s_find_first with a wildcard template. NOTE brain damaged DOS wildcarding: "*" should be translated into a series of "?"s. For example, to search on all files, use template "????????.???" for "foo*.b*" use "foo?????.b??". Some day we'll provide a translation facility. For the Dialogic, use "????????.", with no extension, as each sound file "foo" has an associated sound length file "foo.len" on the PC. s_mkdir (file_descriptor, path) and s_rmdir (file_descriptor, path) make and remove directories, respectively. Record/playback facilities: For the TI only, set_method (file descriptor, method) allows you to select the digitizing algorithm for recording. methods are: 0: 2400 bit/second LPC 1: 9600 bit RELP (residual excited LPC) 2: 16k bit ADP (Adaptive predictive coding) 3: 32K bit ADPCM (adaptive delta PCM) The appropriate TMS320 algorithm will be loaded for record and playback. Once the method is changed, it will remain fixed until next specified. Setting the method is meaningful for recording only. Bug: not sure it is reset to the default (0) on reset. method is an int. Note: due to the nature of these algorithms, set start/stop times, and buffer edit operations, may be meaningless. For the Dialogic: improvements have been made in queue management. In the case of a record event followed by a play event, the latency to the play event has been reduced by interleaving its beginning with the final buffer management of the record. Cuts down the latency from about a second to a couple hundred milliseconds average case.