diff options
Diffstat (limited to 'doc/make-call.pic')
-rw-r--r-- | doc/make-call.pic | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/doc/make-call.pic b/doc/make-call.pic new file mode 100644 index 0000000..6c94de9 --- /dev/null +++ b/doc/make-call.pic @@ -0,0 +1,136 @@ +.PS +copy "sequence.pic"; + +# Define the objects +object(Remote,"Remote GTalk"); move; +object(Connmgr,"Gabble");move; +placeholder_object(Channel,"StreamedMediaChannel");move; +placeholder_object(SessionHandler,"SessionHandler");move; +placeholder_object(StreamHandler,"StreamHandler"); +move;move; +placeholder_object(Client,"VoIP engine"); +move; +placeholder_object(Session); +move; +placeholder_object(Stream); +step(); + +# Message sequences +active(Remote); +step(); +active(Connmgr); +message(Remote,Connmgr,"jingle initiate") +message(Connmgr,Remote,"prelim accept") +create_message(Connmgr,Channel,"StreamedMediaChannel"); +active(Channel) +create_message(Channel,Client, "VoIPEngine"); +create_message(Channel,SessionHandler, "SessionHandler"); +active(Client); +message(Channel,Client,"NewMediaSessionHandler(member,StreamHandler)"); +create_message(Client,Session, "FarsightSession"); +inactive(Client); +step; + +active(SessionHandler) +create_message(SessionHandler,StreamHandler, "StreamHandler"); +active(Client); +message(SessionHandler,Client,"NewMediaStreamHandler(member,StreamHandler)"); +message(Client,Session,"create_stream()"); +create_message(Session,Stream,"FarsightStream"); +return_message(Session,Client); +inactive(SessionHandler); +inactive(Session); + +active(StreamHandler); +message(StreamHandler,Client,"set-remote-codecs(...)"); +active(Stream); +message(Client,Stream,"set_remote_codecs(...)"); +return_message(Stream,Client) +message(Client,Stream,"list_codecs()"); +return_message(Stream,Client); +message(Client,StreamHandler,"codecs(...)"); +return_message(StreamHandler,Client); + +message(Client,Stream,"prepare_transports()"); +return_message(Stream,Client); + +message(Remote,StreamHandler,"jingle candidate"); +message(StreamHandler,Client,"new-candidate(...)"); +message(Client,Stream,"new_remote_candidiate(...)"); +return_message(Stream,Client); + +message(Stream,Client,"new-native-candidate(id)"); +message(Client,Stream,"get_native_candidate(id)"); +return_message(Stream,Client); +message(Client,StreamHandler,"new_native_candidate(...)"); +return_message(StreamHandler,Client); +message(StreamHandler,Remote,"jingle candidiate"); +step; +message(Remote,StreamHandler,"jingle candidate"); +message(StreamHandler,Client,"new-candidate(...)"); +message(Client,Stream,"new_remote_candidiate(...)"); +return_message(Stream,Client); + +message(Stream,Client,"new-native-candidate(id)"); +message(Client,Stream,"get_native_candidate(id)"); +return_message(Stream,Client); +message(Client,StreamHandler,"new_native_candidate(...)"); +return_message(StreamHandler,Client); +message(StreamHandler,Remote,"jingle candidiate"); + +step; + +message(Stream,Client,"native-candidates-prepared"); +message(Client,StreamHandler,"native_candidates_prepared"); +return_message(StreamHandler,Client); + +message(Remote,StreamHandler,"ack candidates"); + +step; +message(Remote,Stream,"STUN") +message(Stream,Remote,"STUN") +step; + +message(Stream,Client,"new-active-candidate-pair"); +message(Client,Stream,"get_native_candidate"); +return_message(Stream,Client); +message(Client,StreamHandler,"new_active_candidate_pair(...)") +message(StreamHandler,Remote,"jingle accept"); +return_message(StreamHandler,Client); +step(); +message(Remote,StreamHandler,"ack accept"); + + +step; +message(Remote,Stream,"RTP+STUN") +message(Stream,Remote,"RTP+STUN") +step; + +message(Remote,StreamHandler,"terminate"); +message(StreamHandler,Client,"stop"); +message(Client,Stream,"state_playing(stopped)"); +return_message(Stream,Client); + +message(StreamHandler,Remote,"ack termianate"); + +inactive(Stream); +inactive(Session); +inactive(StreamHandler); +inactive(SessionHandler); +destroy_message(Client,Stream); +destroy_message(Client,Session); +destroy_message(StreamHandler,SessionHandler); +destroy_message(SessionHandler,Channel); +inactive(Client); + +# Complete the lifelines +step(); +complete(Remote); +complete(Connmgr); +complete(Channel); +complete(SessionHandler); +complete(StreamHandler); + +complete(Client); +complete(Session); +.PE |