I'm not sure starting TELNET will help you solve the problem as you described it in your post date 3/16 7:40 pm in my time zone. Let me explain a few things and ask a few questions.
TELNET is for establishing a telnet emulated terminal session over a TCP/IP connection, usually to another system, though you probably could use it to establish a terminal session to your own system (I've never tried that). Assuming you can establish a telnet session to your own system, the only way you would be able to see process 4's output in the telnet session is if you started process 4 from the telnet session. Is that what you had in mind?
If that is what you are trying to do, when you start TELNET, you would have to specify your TAL program's process name as the IN and OUT file, and perhaps its home terminal, though IN and OUT might be enough. You apparently are having a little trouble getting that to work, and if you decide you really want to take that approach, we can help you solve that problem.
If you can get TELNET started that way, any output it writes will appear on the TAL process' $RECEIVE. Any prompt it writes will appear on the TAL process' $RECEIVE. The TAL process would send commands to the TELNET process by REPLYing to a prompt message it received from TELNET. The TAL process would have to send commands to the TELNET process to connect to your system IP address, select the TACL service, logon, then finally send a command to start process 4. Subsequent output from process 4 would go to TELNET which would write it to your TAL process and it would appear as a message on the TAL process' $RECEIVE. Since the TAL process is also communicating with process 2 and process 3, I imagine you must do *all* of the I/O as nowait I/O with a single waiting point so that the TAL program does not end up in a deadlock. That could become a fairly complicated program, depending on how much other interaction it has to do.
The other way people have been suggesting is that when you start process 4, you give the TAL process' name as process 4's OUT and TERM file. That would work similarly to how running TELNET from the TAL process would, however you would be dealing only with output from process 4, not sending commands to establish a session, logon, etc. So it would be simpler from that regard, but probably still would need to use all nowait I/O with a single waiting point and still might be complicated.
Even though you would want process 4 to use your TAL process as its OUT and TERM file, you would not have to start process 4 from your TAL program. If you start your TAL program first, then you can use ordinary TACL RUN commands to start process 4 and specify the TAL process' name as the OUT and TERM file.
If process 4 checks the device type of its OUT or TERM file and insists that it be a terminal, you will have to mark the TAL program as a subtype 30 program so it receives the request for DEVICEINFO on its $RECEIVE and replies with some type and subtype acceptable to process 4.
There might be other, simpler ways, depending on the details of what you need to do. I would only suggest that you try to make the TAL process accept the output from process 4 if the TAL program actually needs to see that output to make some decisions. Having loops in your application's message flow isn't a very good idea. If you only need to capture the output from prcoess 4 for some sort of logging after the transaction is done, send it to a file and read it back after the transaction is done (or send it to another process to hold in its memory, then have the main TAL process send a request to that process to fetch all the output after the transaction is over. Of course, that doesn't apply if the main TAL process needs to see the output from process 4 during the transaction.
Back in that post of 3/16, you said making the first request to process 2 be nowaited locks up $RECEIVE. That makes no sense to me. Either you described it incorrectly or you misunderstood something about what was happening. That was more than a month ago, so you may have changed things a lot since then, so if that point isn't relevant any more, just ignore it.
So, in summary, you might be able to use TELNET if the guesses I made above are what you had in mind, but I doubt it is the best approach to your problem. Specifying your TAL process as the OUT and TERM files for process 4 would be better than using TELNET, but still pretty complicated, probably requiring that you do all the I/O in the transaction as nowait and use a single AWAITIO call to avoid deadlock. We can try to help you get that right, but I wouldn't recommend it if you aren't already fairly experienced with using nowait I/O. If you can find a solution that does not require sending the output of process 4 back to the main TAL process during the course of the transaction, that ought to make things much simpler. However if the TAL process absolutely needs to see that output during the transaction, maybe you will have to learn how to do the complicated programming, but try hard to think of another way.