nx_callsig.nx
buildroot/runtime/nx_callsig.nx
about
nx_callsig.nx -- sovereign CALL SIGNALING state machine: a telephone-style ring/accept/reject flow so the
boy and girl can call each other and the callee is actively NOTIFIED (ringing) -- not silently ignored.
Telephone semantics by construction:
* a call must be EXPLICITLY accepted from RINGING -> no accidental tap can connect it
* an unanswered ring TIMES OUT to MISSED -> a persistent record the callee still sees (notifications not lost)
* only accept/reject/cancel/timeout leave RINGING; ANY stray event keeps it ringing (can't be fat-fingered away)
The invite/accept/reject events themselves ride the E2E relay (nx_e2e); this is the pure state logic.
license_tier: ORIGINAL
dependencies 0 imports · 1 importers
imports: none
imported by: nx_callsig_gate.nx
structs
| none |
consts
| 10 | const CS_IDLE: i64 = 0 |
| 11 | const CS_RINGING: i64 = 1 |
| 12 | const CS_CONNECTED: i64 = 2 |
| 13 | const CS_REJECTED: i64 = 3 |
| 14 | const CS_MISSED: i64 = 4 |
| 15 | const CS_CANCELLED: i64 = 5 |
| 16 | const CS_ENDED: i64 = 6 |
| 18 | const EV_INVITE: i64 = 1 |
| 19 | const EV_ACCEPT: i64 = 2 |
| 20 | const EV_REJECT: i64 = 3 |
| 21 | const EV_CANCEL: i64 = 4 |
| 22 | const EV_TIMEOUT: i64 = 5 |
| 23 | const EV_HANGUP: i64 = 6 |
functions
| 25 | func cs_step(state: i64, ev: i64) -> i64 called by 1: main |
| 38 | func cs_is_ringing(state: i64) -> i64 { if state == CS_RINGING { return 1 } return 0 } called by 1: main |
| 40 | func cs_is_missed(state: i64) -> i64 { if state == CS_MISSED { return 1 } return 0 } called by 1: main |
| 42 | func cs_is_connected(state: i64) -> i64 { if state == CS_CONNECTED { return 1 } return 0 } called by 1: main |