AZQ VOICE-CALL STATE AND EVENT DETERMINATION
Each point is for an input, each [Event] tells our determined output state/event.
OUTGOING CALLS
(1) Call setup/origination state from idle
New Chipset CALL_EVENT_ORIG (voice) while call_idle
[Event] “Call Initiation”
1.1 L3 CC Alerting
[Event] “Call Setup [duration]” (call setup success)
Go to state 2
1.2 Chipset CALL_EVENT_CONNECT (normally comes at L3 CC Connect Acknowledge and this sometimes come before/without L3 CC Alerting if the other side picks-up very quickly like some IVRs)
[Event] “Call Established”
Go to state 2
1.3 Chipset CALL_EVENT_END
Determine call end cause in (3) (“Call End: User Ended” or Call Block)
END
1.4 Call setup timed-out
Hangup call
[Event] Call Setup timed-out
END
(2) Post-Alerting state
2.1 Chipset CALL_EVENT_CONNECT (normally comes at L3 CC Connect Acknowledge)
[Event] “Call Established”
2.2 Chipset CALL_EVENT_END
Determine call end cause in (3) (“Call End: User Ended” or Call Drop)
END
2.3 Call duration completed successfully
Hangup call
[Event] “Call End”
(3) Determine call-end cause
3.1 If chipset event tells that this was commanded by the local user - then [Event] “Call End: User ended” call