I am trying to set up a PPP connection over an Iridium satellite phone connection (low bandwidth, very high latency). I've solved a number of problems, but finally run into one I don't know how to get around. In a nutshell, I can set up a PPP connection and get successful communications (ping, as well as a homegrown network app) for a short time (measured in seconds, usually between 5 and 30). Then no data is passed, and eventually the PPP connection shuts down.

The modem connection is set up under the control of a control application on each end; once the connection is up, each side spawns pppd. The string passed to execv is "/usr/sbin/pppd call iridium notty", and /etc/ppp/peers/iridium contains:

noauth
unit 1
ktune
ipcp-accept-local
lock
local
debug
10.0.1.227:

Obviously the file on the other end of the connection specifies a different local IP address, but otherwise things are basically identical on either end. The debug messages that appear in syslog are long, and basically seem uneventful; LCP, IPCP, and CCP messages and eventually:
Sep 6 00:12:57 bpauvrd1 pppd[3039]: found interface eth0 for proxy arp
Sep 6 00:12:57 bpauvrd1 pppd[3039]: local IP address 10.0.1.227
Sep 6 00:12:57 bpauvrd1 pppd[3039]: remote IP address 10.0.1.106
Sep 6 00:12:57 bpauvrd1 pppd[3039]: Script /etc/ppp/ip-up started (pid 3042)
Sep 6 00:12:58 bpauvrd1 pppd[3039]: Script /etc/ppp/ip-up finished (pid 3042),
status = 0x0

(occasionally the status for ip-up is 0x1, but no helpful message is displayed showing why.)

After some time, the following start to trickle into syslog on one side of the connection, always the same one:

Sep 6 00:13:22 bpauvrd1 pppd[3039]: sent [LCP EchoReq id=0x1 magic=0xd4f4ff7f]
Sep 6 00:13:52 bpauvrd1 pppd[3039]: sent [LCP EchoReq id=0x2 magic=0xd4f4ff7f]
Sep 6 00:14:22 bpauvrd1 pppd[3039]: sent [LCP EchoReq id=0x3 magic=0xd4f4ff7f]
Sep 6 00:14:52 bpauvrd1 pppd[3039]: sent [LCP EchoReq id=0x4 magic=0xd4f4ff7f]
Sep 6 00:15:22 bpauvrd1 pppd[3039]: No response to 4 echo-requests
Sep 6 00:15:22 bpauvrd1 pppd[3039]: Serial link appears to be disconnected.
Sep 6 00:15:22 bpauvrd1 pppd[3039]: Script /etc/ppp/ip-down started (pid 3069)
Sep 6 00:15:22 bpauvrd1 pppd[3039]: sent [LCP TermReq id=0x2 "Peer not responding"]
Sep 6 00:15:22 bpauvrd1 pppd[3039]: Script /etc/ppp/ip-down finished (pid 3069), status = 0x0
Sep 6 00:15:25 bpauvrd1 pppd[3039]: sent [LCP TermReq id=0x3 "Peer not responding"]
Sep 6 00:15:28 bpauvrd1 pppd[3039]: Connection terminated.
Sep 6 00:15:28 bpauvrd1 pppd[3039]: Connect time 2.6 minutes.
Sep 6 00:15:28 bpauvrd1 pppd[3039]: Sent 23898 bytes, received 4064 bytes.

I expect this has to do with the tuning of PPP to deal with the specifics of the Iridium connection, since if I replace the two modems with a null-modem serial cable I can start PPP and maintain it apparently indefinitely using the same configuration.

Can anybody point me to relevant information, or make some potentially helpful suggestions? Thanks!

-- Bob