From 47034082bbf7190c8d5b54d8101b3d67fcee028a Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Wed, 6 Jul 2011 10:10:07 +0200 Subject: [PATCH] Update the DESIGN document for this code --- DESIGN | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/DESIGN b/DESIGN index c7755aa..dccc464 100644 --- a/DESIGN +++ b/DESIGN @@ -6,7 +6,7 @@ Some simple notes on SIP - SIPDialog holds state of a dialogue - to/from/to tag/from tag... - - call id... maybe SDP... + - call id... - SIPTransport is base class for the transport - SIPUdpTransport sends and listens on UDP @@ -15,17 +15,28 @@ Some simple notes on SIP - 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 - - 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: - - good question, next question.. not solved yet + - This is handled by the SIPTransaction base using + the generic timer framework. Limitations: - - Multiple Via's are not supported - - No retranmission, no response parsing.. + - Multiple Via's are not supported, no routing information + is gathered, e.g. one can not have multiple transports