org.echarts.servlet.sip.machines
Class ThirdPartyCCFlow1FSM

java.lang.Object
  extended by org.echarts.Machine
      extended by org.echarts.StateMachine
          extended by org.echarts.TransitionMachine
              extended by org.echarts.servlet.sip.machines.ThirdPartyCCFlow1FSM
All Implemented Interfaces:
java.io.Serializable


public class ThirdPartyCCFlow1FSM
extends TransitionMachine

Uses third-party call control to set up a call between two far parties. See constructor for parameters. This fragment uses RFC 3725 Third Party Call Control (3pcc) call establishment flow I to establish a call between two parties.

              A              Controller               B
              |(1) INVITE no SDP  |                   |
              |<------------------|                   |
              |(2) 200 offer1     |                   |
              |------------------>|                   |
              |                   |(3) INVITE offer1  |
              |                   |------------------>|
              |                   |(4) 200 OK answer1 |
              |                   |<------------------|
              |                   |(5) ACK            |
              |                   |------------------>|
              |(6) ACK answer1    |                   |
              |<------------------|                   |
              |(7) RTP            |                   |
              |.......................................|
 

See Also:
Serialized Form

Nested Class Summary
 class ThirdPartyCCFlow1FSM.CALL_SECOND_PARTY
           
 
Field Summary
 TransparentFSM TRANSPARENT
           
 
Constructor Summary
ThirdPartyCCFlow1FSM(SipFactory factory, SipPort caller, SipPort callee, java.lang.String callerSipURI, java.lang.String calleeSipURI, int firstPartyTimeoutMsec, boolean isEarlyMedia, java.lang.String uid)
          First calls callerSipURI on caller SipPort, then on success calls calleeSipURI on calleeSipPort.
 
Method Summary
 
Methods inherited from class org.echarts.TransitionMachine
addMessagelessTransition, addMessageTransition, globalStateString, globalStateString, initializeMessagelessTransitions, initializeMessageTransitions, initializeRoot, localStateString, localStateString, removePort, run, run, runNoQueueing
 
Methods inherited from class org.echarts.StateMachine
setMachineDebugging, setMachineMonitor, setMachineMonitoring
 
Methods inherited from class org.echarts.Machine
getDefaultMachineDebugging, getDefaultMachineDebuggingGlobalStateOutput, getDefaultMachineMonitor, getDefaultMachineMonitorFilter, getDefaultMachineMonitoring, getMachineDebugging, getMachineDebuggingGlobalStateOutput, getMachineID, getMachineIndex, getMachineMonitor, getMachineMonitoring, getParentMachine, getRootMachine, getSystemDebugging, getSystemMonitoring, putEvent, setDebugging, setDefaultMachineDebugging, setDefaultMachineDebuggingGlobalStateOutput, setDefaultMachineMonitor, setDefaultMachineMonitorFilter, setDefaultMachineMonitoring, setMachineDebuggingGlobalStateOutput, setSystemDebugging, setSystemMonitoring, statePathString, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TRANSPARENT

public TransparentFSM TRANSPARENT
Constructor Detail

ThirdPartyCCFlow1FSM

public ThirdPartyCCFlow1FSM(SipFactory factory,
                            SipPort caller,
                            SipPort callee,
                            java.lang.String callerSipURI,
                            java.lang.String calleeSipURI,
                            int firstPartyTimeoutMsec,
                            boolean isEarlyMedia,
                            java.lang.String uid)
                     throws java.lang.Exception
First calls callerSipURI on caller SipPort, then on success calls calleeSipURI on calleeSipPort.

Parameters:
callerSipURI - SIP URI of first party. This will be the Request-URI of INVITE sent out on caller SipPort.
calleeSipURI - SIP URI of second party. This will be the Request-URI of INVITE sent out on callee SipPort.
firstPartyTimeoutMsec - Wait for this duration for first party to answer before abandoning call (-1 means no timeout)
isEarlyMedia - If true, early media on call to second party (i.e. SDP in provision response to the INVITE) causes ACK to be sent to first party.
Throws:
java.lang.Exception
Method Detail