🖥️ Accessing Textrelay with a landline Modem and Chrome / Edge on a PC.

You can use this experimental web page, and a USB modem plugged into a phone landline to access services like Text relay. It supports "type and read".

Edge or Chrome on a PC, support Web API serial. Plug in a USB modem like these: Modems

[ PC: Edge webrowser-this page ]- [ USB serial ]-[ modem ]- [ phoneline ] - [ Text relay ]

For security reasons, you need to grant permissions to access the serial ports used by your modem. Press Connect.

Modem: |

AT commands:

rcvd

sent

input

NOTE: buttons hidden until Modem/serial port is connected

The connection is DUPLEX, but a record of the conversation, needs the RX and TX interleaved.

mixed

Use CNTL-A, CNTL-C to copy


waiting

Special words #fast #slow #pause GA

settings and stats

Additional Modem Commands

ATS0=0 - modem auto answer

ATS0=1 - modem auto answer, one ring, ADT reports busy if two rings

ATS0=0 - modem auto answer

ATE1 - turn on local echo.

ATE0 - turn off local echo.

AT+MS=0,,, - puts some modems into V.21 mode 300 baud.

AT+MS=V21 - puts some modems into V.21 mode 300 baud.

AT+MS=V23C - puts some modems into V.23 mode

AT+MS=B103 - puts some modems into Bell 103 mode 300 baud.

AT+MS=0,,, - puts some modems into V.21 mode 300 baud.

ATS10=255 - Carrier Losss

AT&V - Sregs values

AT&V1 - Dump Last call

charset="ISO-8859-1" - not UTF8

S7 Wait Time for Carrier, Silence, or Dial Tone 1-255 s * 50 
S8 Pause Time for Dial Delay Modifier 2-255 s * 1 
S9 Carrier Detect Response Time 1-255 0.1 s * 6 
S10 Lost Carrier To Hang Up Delay 1-255 0.1 s * 14

ati3

CX93001-EIS_V0.2002-V92

OK

// Turn OFF Hang up on loss of carrier 
ATS10
OK
ATS=0
OK

// Set up V21
AT+MS=V21

OK
This code is based on code found in The Raspbarry Pi HACKSPACE magazine #44 p98,p100
http://hsmag.cc/Simpleterm 
https://www.connectedlittleboxes.com/simpleterm.html
http://hsmag.cc/CLBproject

Web API documentation:
 https://developer.mozilla.org/en-US/docs/Web/API  |
 https://developer.mozilla.org/en-US/docs/Web/API/Serial 

Local MODEM support.

This code is based on code found in Raspberry Pi magazine HACKSPACE #44 p98,p100 http://hsmag.cc/Simpleterm purchased from Tesco's.

Chrome and Edge can drive serial ports to support cloud based tools to program microcontrollers.

I tried using a serial lead that works on WIN10/11 and these modems. I like the USB ZOOM modem

Plug a modem in, and if seen, you can connect to it, using the connect button.

Your typing goes via the modem. It is possible to copy the typing to the clipboard.

Modems are controlled by AT commands and send inband keywords like OK, ERROR, CONNECT, RING.

A call back function is used to receive text from the modem and look for the key words. The webpage allows a user to type and keystrokes are monitored to send the text on space or enter.

This page can be used from an HTTPS website or a local file on the desktop PC. The user must do the CONNECT

This works

This was not working but seems to be working now. It seemed to work after I dabbled with modems in Windows Device manager:

This one also works, but does not like AT+MS=V21 :

Cable confusion warning - The wiring of the cable from the modem sometimes uses the Phone - 4 wire convention and sometimes the Modem 2 wire convention.

Terminal--originate modem--Phoneline --Answering modem--computer

This page can be used to connect to the Textrelay / RelayUK service for the deaf.

You need to run Edge or Chrome on a PC ( or MAC ) and an old modem, like the ZOOM USB modem and a phone line.

Chrome on mobiles does not seem to support WebAPI serial.

Experiments to play modem squark audio and get the modem to display it

A webpage using Web Audio to generate V.21 signals. can generate short bursts of V.21 modem squark. These can be can be acoustically coupled into a phone on a second land line.

I only have one phone line, and one modem. Off hook the modem first using ATA or ATD, then off hook the phones handset, and play modem squark audion into the handset microphone.

Textphones allow Voice Carry Over and do not hangup on loss of carrier. You use a second phone plugged into the same line to speak and hear. To return to type and read, you need to get the modem to retrain. They also have a button to retrain the modem. If you called, use ATD to originate without dialling. If you answered, use ATA to re-answer. See ITU V.21.

It is a challenge to display the merged text in a pleasing way.

A summary of the challenges of displaying the text.

if using V.21 the connection is DUPLEX, but the conversation log is SIMPLEX. It is a challenge to display the merged text in a pleasing way. There are more notes in the sourcecode

If people are overtyping, then the bubbles split.

If the bubbles are split on GA, then the Bubbles can overlap in time.

A--[ txBuffer ]----
B--[ rxBuffer ]----

===================
stream Timeline:-
===================
A--[ HI GA ]-----------------[Hello     ]-----[Hello     ]---[aaaaaaaaaaa]--------[ddddddd]--
B----------------[ HI GA ]-----[Hi]---------[hhhhhhhhhhhhh]----[bbbbbbbbbbb]---[ccccccc]----

NON_OVERLAPPING            | OVERLAPPING  
A--[ HI GA ]---------------|--[Hello     ]-----[Hello ]------[aaaaaaaaaaa]--------[ddddddd]-----
B----------------[ HI GA ]-|----[Hi]---------[hhhhhhhhhhhhh]----[bbbbbbbbbbb]---[ccccccc]----

Web APIs

When writing code for the Web, there are a large number of Web APIs available. Below is a list of all the APIs and interfaces (object types) that you may be able to use while developing your Web app or site. Web APIs are typically used with JavaScript, although this doesn't always have to be the case.

API documentation: https://developer.mozilla.org/en-US/docs/Web/API | https://developer.mozilla.org/en-US/docs/Web/API/Serial