5.2 KiB
2026-09-18 ECS deployment and SIP endpoint verification
Scope and safety boundary
This is an owner-authorized first-version deployment/environment check on the
existing Debian 13 ECS. No ECS, EIP, security group, Docker container, or
unrelated instance was created, detached, stopped, or rebound. The fixed
whitelist EIP 123.56.71.98 was confirmed by Alibaba Cloud as InUse on
instance i-2zeb69p1fo75r92wplbz in cn-beijing.
This evidence is not P1 or production acceptance. It records deployment of the
current dirty-tree candidate and a SIP OPTIONS reachability probe only. The
probe sent no INVITE, did not select a telephone number, and did not place a
telephone call or claim caller-ID/dial-prefix acceptance.
Candidate deployment
- Source tree: current working tree at source commit
758c0a2with documented dirty state; localmake buildpassed. - Candidate SHA-256:
269a0d2ad350544597a71d3b0869ceb57d57f86defb3fe560e64e75bc052edb6. - The candidate was copied as the non-destructive hash-named file
/opt/sip-go-agent/sip-go-agent.269a0d2ad350544597a71d3b0869ceb57d57f86defb3fe560e64e75bc052edb6and the remote hash matched. --helpexecuted on the ECS and exposed the explicitagentanddispatchersubcommands.- The pre-existing
/opt/sip-go-agent/sip-go-agentwas not overwritten. No Agent or Dispatcher systemd unit exists on this host, so the candidate was not silently activated as a production service.
The final make release artifact was also transferred to
/opt/sip-go-agent/releases/local-development-14d61e617df1c00a9a0ab372f8baf0b8a67e40cff75fcfb36fb1f9cfb27a0725/.
The release manifest and portable relative SHA256SUMS verified the
binary/module hashes, Go 1.27.1, source_dirty=true, and
credentials_embedded=false; the remote release --help exposed both
agent and dispatcher. The manifest explicitly retains
production_approval=false, so this is a deployment candidate, not a release
approval.
Deployed process startup
- The candidate Agent was launched on the ECS in explicit
--mode mockwith an isolated temporary spool and returned successfully after startup. - The candidate Dispatcher was launched in explicit
--mode mockwith an isolated temporary SQLite database and started successfully under a bounded timeout; the database was created at 122,880 bytes. dispatcher --oncewithoutRABBITMQ_URLfailed closed with the expected missing-publisher configuration error. It did not silently run without the required MQ path.- These are binary/startup checks only. No production Agent service was activated, and no real MQ command or business event was consumed.
Follow-up Dispatcher outbox validation
The candidate was rebuilt after the first ECS receipt smoke exposed that the
long-running dispatcher --consume path did not flush its own outbox. Candidate
SHA-256:
14d61e617df1c00a9a0ab372f8baf0b8a67e40cff75fcfb36fb1f9cfb27a0725.
The current candidate was copied to the ECS and run with only --consume.
Publishing the contract fixture to the isolated tenant queue resulted within
one second in tasks=1, inbox=1, outbox=1, and outbox_status=published;
no separate --once process was used. A temporary event queue bound to
agent-call.events.v1 received one agent-call.command.result message. The
regression test is in cmd/sip-go-agent/main_test.go.
Existing media environment
- Container:
agent-call-asterisk-poc. - Image:
andrius/asterisk:22.10.1-pinned; container healthy. - Asterisk:
22.10.1; UDP transport0.0.0.0:5060inside the container. - Current endpoints are only
anonymousandmock-callee;pjsip show registrationsreportsNo objects found. - Therefore this host currently has no configured provider trunk, provider registration, provider credentials, or production Agent/ARI execution path.
Provider signaling probe
Using the existing sipmock/sipp:0.1.0 SIPp image and a temporary
OPTIONS-only scenario, one UDP OPTIONS was sent to each registered provider
from the ECS private source 172.16.0.123. Each response carried
received=123.56.71.98 and returned SIP/2.0 200 OK:
| Provider entry | Endpoint | Result |
|---|---|---|
| 数企 | 61.132.228.221:5060 |
200 OK |
| 中鼎 | 60.171.24.90:5060 |
200 OK |
| 百应 | 160.202.254.79:5060 |
200 OK |
The temporary scenario and logs were removed after the probe. No INVITE,
RTP media, registration, Digest exchange, caller-ID assertion, prefix rewrite,
or telephone charge was generated.
Result and remaining gate
Passed: current candidate artifact was copied and executed for CLI verification on the authorized ECS; the fixed EIP was confirmed; all three registered SIP endpoints answered an OPTIONS probe through the fixed EIP.
Not proven: a 200 OK to OPTIONS is not provider authorization for an
outbound call. The remote Asterisk still lacks provider trunk configuration.
The provider-specific transport/registration/authentication mode and the
mapping of the preserved caller IDs (BD93205882, mbkq, KQ91526) to
From/PAI/Digest fields remain unconfirmed. The approved dial prefixes,
number selection, real call duration/recording, AI/MQ/OSS path, and two-Cell
P1 acceptance therefore remain open.