43 lines
1.2 KiB
Plaintext
43 lines
1.2 KiB
Plaintext
Some simple notes on SIP
|
|
|
|
- SIPGrammar parses and Request/Response
|
|
- SIPRequest is base to requests
|
|
- SIPResponse is the response class
|
|
|
|
- SIPDialog holds state of a dialogue
|
|
- to/from/to tag/from tag...
|
|
- call id...
|
|
|
|
- SIPTransport is base class for the transport
|
|
- SIPUdpTransport sends and listens on UDP
|
|
|
|
- SIPUserAgent
|
|
- Holds a SIPTransport
|
|
- Generates various ids and fills requests
|
|
- Will dispatch response to the transaction
|
|
- Will dispatch SIPRequests to a dialog.
|
|
|
|
- SIPTransactionBase is the base for transactions
|
|
- 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:
|
|
- This is handled by the SIPTransaction base using
|
|
the generic timer framework.
|
|
|
|
|
|
|
|
Limitations:
|
|
- Multiple Via's are not supported, no routing information
|
|
is gathered, e.g. one can not have multiple transports
|
|
|