Some simple design notes to guide people - MGCPGrammar can parse requests and replies - MGCPCommand base class of commands - asDatagram to create message - MGCPTrunk a trunk with a destination and nr. endpoints - MGCPVirtualTrunk for 1@mgw.. in hex - MGCPE1Trunk for ds-1/... handling - both hold MGCPEndpoints - MGCPTransaction a command to create a transaction - callback for completion (wth response) - callback for a timeout - created with an endpoint and the callagent - MGCPCallAgent serves the Call-Agent port - Generates the transaction id for a transaction - Does the retransmission - Handles timeout - Recycles transaction after three minutes (to block a transaction identifier)