Update the DESIGN document for this code
This commit is contained in:
parent
f997ab4fbc
commit
47034082bb
21
DESIGN
21
DESIGN
|
@ -6,7 +6,7 @@ Some simple notes on SIP
|
||||||
|
|
||||||
- SIPDialog holds state of a dialogue
|
- SIPDialog holds state of a dialogue
|
||||||
- to/from/to tag/from tag...
|
- to/from/to tag/from tag...
|
||||||
- call id... maybe SDP...
|
- call id...
|
||||||
|
|
||||||
- SIPTransport is base class for the transport
|
- SIPTransport is base class for the transport
|
||||||
- SIPUdpTransport sends and listens on UDP
|
- SIPUdpTransport sends and listens on UDP
|
||||||
|
@ -15,17 +15,28 @@ Some simple notes on SIP
|
||||||
- Holds a SIPTransport
|
- Holds a SIPTransport
|
||||||
- Generates various ids and fills requests
|
- Generates various ids and fills requests
|
||||||
- Will dispatch response to the transaction
|
- Will dispatch response to the transaction
|
||||||
|
- Will dispatch SIPRequests to a dialog.
|
||||||
|
|
||||||
- SIPTransactionBase is the base for transactions
|
- SIPTransactionBase is the base for transactions
|
||||||
- SIPInviteTransaction is to create a call
|
- Transactions work on a Dialog (e.g. for INVITE on a non
|
||||||
|
confirmed dialog), the callbacks will pass the dialog of
|
||||||
|
of the response, e.g. for INVITE a confirmed dialog with
|
||||||
|
a to tag.
|
||||||
|
- SIPInviteTransaction is to create a session
|
||||||
|
- SIPByeTransaction is to release a session/dialog
|
||||||
|
|
||||||
|
- SIPCall handles high level call handling
|
||||||
|
- Cancel/Hangup in form of terminate
|
||||||
|
- Refusing to deal with multiple dialogs
|
||||||
|
|
||||||
|
|
||||||
Timeouts/Retransmission:
|
Timeouts/Retransmission:
|
||||||
- good question, next question.. not solved yet
|
- This is handled by the SIPTransaction base using
|
||||||
|
the generic timer framework.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Limitations:
|
Limitations:
|
||||||
- Multiple Via's are not supported
|
- Multiple Via's are not supported, no routing information
|
||||||
- No retranmission, no response parsing..
|
is gathered, e.g. one can not have multiple transports
|
||||||
|
|
||||||
|
|
Reference in New Issue