FUNCAO isdn_call('Human A','ST A','ET A','ET B','ST B','Human B') EVENTO ('Pick up','Human A','ST A') SINAL ('Set up','ST A','ET A') EVENTO(' ','ET A','ET B') SINAL ('Set up','ET B','ST B') EVENTO (Ringing,'ST B','Human B') SINAL (Alerting,'ST B','ET B') EVENTO(' ','ET B','ET A') SINAL (Alerting,'ET A','ST A') EVENTO ('Ring back indication','ST A','Human A') EVENTO ('Pick up','Human B','ST B') SINAL (Connect,'ST B','ET B') EVENTO(' ','ET B','ET A') SINAL (Connect,'ET A','ST A') EVENTO ('Ring back indication stops','ST A','Human A') LINHA() COMENT (*,'Conversation') LINHA() LINHA() SEPARADOR() CASO (*,'Called terminal hangs up first') EVENTO ('Hang up','Human B','ST B') SINAL (Disconnect,'ST B','ET B') EVENTO(' ','ET B','ET A') SINAL (Disconnect,'ET A','ST A') SINAL (Release,'ET B','ST B') SINAL ('Release complete','ST B','ET B') SINAL (Release,'ST A','ET A') SINAL ('Release complete','ET A','ST A') LINHA() LINHA() LINHA() LINHA() LINHA() LINHA() LINHA() LINHA() SEPARADOR() CASO (*,'Calling terminal hangs up first') EVENTO ('Hang up','Human A','ST A') SINAL (Disconnect,'ST A','ET A') EVENTO(' ','ET A','ET B') SINAL (Disconnect,'ET B','ST B') SINAL (Release,'ET A','ST A') SINAL ('Release complete','ST A','ET A') SINAL (Release,'ST B','ET B') SINAL ('Release complete','ET B','ST B')