kalbi icon indicating copy to clipboard operation
kalbi copied to clipboard

Finish Client/Server Transactions FSM

Open hyperioxx opened this issue 5 years ago • 0 comments


func (tm *TransactionManager) NewServerTransaction(msg *message.SipMsg) *ServerTransaction {

	tx := new(ServerTransaction)

	tx.FSM = fsm.NewFSM("", fsm.Events{
		{Name: server_input_request, Src: []string{""}, Dst: "Proceeding"},
		{Name: server_input_user_1xx, Src: []string{"Proceeding"}, Dst: "Proceeding"},
		{Name: server_input_user_300_plus , Src: []string{"Proceeding"}, Dst: "Completed"},
		{Name: server_input_ack, Src: []string{"Completed"}, Dst: "Confirmed"},
		
		{Name: "Terminated", Src: []string{ "Proceeding"}, Dst: "Terminated"},
	}, fsm.Callbacks{})

	tx.BranchID = string(msg.Via[0].Branch)
	tx.Origin = msg

	tm.TX[string(msg.Via[0].Branch)] = tx

	return tx

}

hyperioxx avatar Oct 07 '20 10:10 hyperioxx