How a line works
One iPhone, one SIM, one customer. What happens to your traffic, your texts and your calls, what Ostra checks, and what happens when a check fails.
Reading a line ID
Every line has an ID that names where its phone is and which network it is on. The same two digits give its ports, so an ID is all you need to point a client at a line.
| Port | Protocol | Who it answers |
|---|---|---|
| 30022 | HTTPS proxy | Anyone with the line’s username and secret. The default for browsers and automation. |
| 10022 | SOCKS5 | Only the source addresses you list. No credential, because Chromium cannot send one over SOCKS5. |
| 20022 | HTTP | Only the source addresses you list. Plaintext to the gateway, so prefer HTTPS. |
Traffic out goes through the phone
Your client talks to Ostra’s gateway. The gateway hands the connection to the phone for that line, and the phone sends it over its own cellular connection. The site you test sees the line’s carrier address.
A request through LAX-V-22
- Your clientcurl, a browser, Playwright, a test suite: anything that takes a proxy, pointed at lax.gw.ostranetwork.com:30022
- Ostra gatewayChecks the credential and the blocked list, caps the line’s bandwidth and connections, and records the connection: time, your client’s address, host, port and bytes.
- The lineAn iPhone on Verizon’s network in Los Angeles, sending over its own cellular connection
- The site you testSees the line’s own address on Verizon’s network, AS6167
- Address families
- IPv4 and IPv6. A carrier can drop one family for a while, and the line’s status says so.
- Lookups
- Host names are looked up through the line, not at the gateway, when the client hands the name to the proxy (socks5h:// or an HTTPS proxy).
- Protocols
- TCP only. UDP and QUIC are not carried, so a browser falls back to TCP.
The checks, and what happens when one fails
A line is called healthy only on proof: a request that went through its port in the last 3 minutes and left from its carrier’s network. A check that cannot tell is not a pass. Traffic that would leave from any other network closes the port within about a minute. Traffic never leaves from a data center.
-
Every minute
A request through the port
Ostra sends its own request through each line’s port every minute. No recent request through the port means no proof, and a line without proof is never shown as healthy.
-
Every 60 s
The exit network
The address the request left from must belong to the line’s carrier. Any other network, or one that cannot be looked up, closes the port within about a minute.
-
Port closes
When the phone cannot carry traffic
Ostra restarts what it can, and closes the port rather than send traffic another way. Your client gets a refused connection, never a request sent from a data center.
The dashboard shows each line’s status from these checks: Working, Down, No recent probe or Suspended, with the time of the last probe. See a line page, drawn with sample data.
Texts and calls come in to its number
The SIM’s own mobile number is yours while the line is; when the line ends, the number is deleted and never given to another Ostra customer. A line never texts or calls anyone. Texts to it reach you by API, webhook and the dashboard. Calls to it are forwarded to Ostra and ring the Ostra iPhone app and the dashboard.
A sign-in code to (213) 555-0147
- Your serviceTexts a sign-in code to the line’s number
- The lineYour verification code is 482915.
- OstraReads the code, stores the text encrypted and keeps the phone’s own timestamp
- YouThe webhook message.received with the code, or the API’s wait for the next text
- Bodies
- In the dashboard a text stays closed until someone opens it, and each opening is recorded with who and when.
- Calls
- The line forwards every call to Ostra. The caller hears ringing from the first second while Ostra takes any code they key in the first 8 seconds. Then the call rings the Ostra iPhone app, and the dashboard in any browser set to ring, for up to 60 seconds. The first to answer takes the call. Each call is logged with its caller, when the carrier passes the number on, and its time, and reaches you as the event call.received.
- Transcription
- Off by default. When it is turned on for a line, the caller first hears an announcement that the call is transcribed; then spoken digits are captured too, and a caller nobody answers can leave a voicemail. Ostra keeps the voicemail as text and deletes the recording at Ostra’s calls and messaging provider. The call itself is not recorded.
A new carrier IP, when you ask
Asking for a new carrier IP makes the phone reconnect to its carrier, which then gives it an address on the same network; it can be the one it had before. It happens on one line at a time, when you or your code ask, or when Ostra’s own recovery asks because the line lost IPv4 or IPv6. Never on a schedule.
- How often
- At most once every 5 minutes and 24 times in any 24 hours per line, and not for an hour after one that left the line much slower. One that Ostra’s recovery asks for counts toward the same limit.
- A refusal
- Too soon is answered at once with the time the next one is allowed, next_allowed_at. Ostra never holds a request to run later.
- Your connections
- Connections through the line drop while the phone reconnects. Each new carrier IP is reported as line.ip_changed.
What is kept
The record of what a line did, not what it carried.
- Connection records
- Time, line, your client’s address, destination host and port, and bytes. Never content. Kept 90 days, and yours to export.
- Texts and calls
- Encrypted at rest, kept 30 days by default. A code Ostra reads from a text or a call is cleared after 15 minutes.
- Who looked
- Every staff view of a text or call is logged. Privacy and records