The STORM Project Analysis, Design and Implementation

22
The STORM Project Analysis, Design and Implementation - Wajdi Elleuch (Researcher Engineer) - Alain C. Houle (Professor - Université de Sherbrooke) - Samuel Guénette (Chief of Technology - M5T) - Éric Rodrigue (Programmer - Mediatrix)

description

The STORM Project Analysis, Design and Implementation. - Wajdi Elleuch ( Researcher Engineer ). - Samuel Guénette (Chief of Technology - M5T). - Alain C. Houle ( Professor - Université de Sherbrooke). - Éric Rodrigue (Programmer - Mediatrix). - PowerPoint PPT Presentation

Transcript of The STORM Project Analysis, Design and Implementation

Page 1: The STORM Project Analysis, Design and Implementation

The STORM ProjectAnalysis, Design and Implementation

- Wajdi Elleuch (Researcher Engineer)

- Alain C. Houle (Professor - Université de Sherbrooke)

- Samuel Guénette (Chief of Technology - M5T)

- Éric Rodrigue (Programmer - Mediatrix)

Page 2: The STORM Project Analysis, Design and Implementation

STORM : OverviewBlack Phone and IP Phone interfaces are limited for advanced services

STORM is an interface allowing cooperation between a PC and an APA for advanced/new telephony services:

Make Call Caller Id Call History Voice Mail Call Recording Simple APA Configuration

Example of new services :

IP Phone

STORM Enabled APA

POTS Phone

PC Running the STORM GUI

Network

Page 3: The STORM Project Analysis, Design and Implementation

STORM : Service Use cases

Make Call

Caller ID

Show and handle current call

Reject

Handle incoming call

Forward

Accept

Call Recording

Call History

APA Configuration

Modify Configuration

Voice mail Configuration

Hold/Unhold Call

Display call Info

Display call-history-list

Compose call

Free to-calladdress Input

Select from Address book

Default APABehavior configuration

Set Configuration

Get Configuration

uses

uses

uses

uses

uses

uses

uses

uses

uses

uses

uses

uses

uses

uses uses

uses

uses

uses

uses

uses

uses

extends

uses

Storm PC user

Page 4: The STORM Project Analysis, Design and Implementation

STORM : The Protocol ?

Sip User APA PC

SIP STORM Protocol ?

Distributed Object Technology ?

- JAVA/RMI : C++ Compatibility ?- COM/DCOM : Compatibility with non-Microsoft systems ?- CORBA : Text data support ? XML support ?

Web Services related technology to support XML ?

- SOAP: Client/Server Model (slave/master) - XML/RPC: Limited XML structure (methodName, params, param, value)

- XML STORM: Use XML structure to describe the exchanged data between Storm devices

Page 5: The STORM Project Analysis, Design and Implementation

STORM : The Protocol ?

Sip User APA PC

SIP XML Data conveyed by ?

Web Protocol to transport XML Data ?

- HTTP : Having a HTTP listener (HTTP Server on the APA) ? Managing device presence ? Statefull ?

- SMTP : Same limitation as HTTP

- SIP : The Solution !!

- Using the Payload of the SIP paquet to encapsulate XML message

- Using INFO request through a session already established (session created by an INVITE between Storm devices) ? Or using Subscribe/Notify mechanism (Subscribe request to create a session and Notify request to convey the Storm XML messages ?

- Using the SIP Stack implemented on the APA (M5T SIP stack V 3.5 )

- Using sip existing headers and probably some extra-headers

Page 6: The STORM Project Analysis, Design and Implementation

STORM : Sequence Diagram

Sip User APA PC

SIP STORM Protocol based on SIP

INVITE

SUBSCRIBE

Ack : 202 OK

100 TRYING

180 RINGINGNOTIFY (Caller-Id)

Ack : 202 OK

Get and apply answer rules saved on the APA

Notify remote Storm device if subscribed to

this service

Request line: NOTIFY sip:PC_SIP_URI SIP/2.0Method: NOTIFYMessage Header Max-Forwards: 70 Content-Length: … Via: SIP/2.0/UDP Local_IP_Addr;branch=z9hG4bKe89100756 Call-ID: a0ca01198b4afc1 From: APA_SIP_URI;tag=9f82847c9fbb5ee To: PC_SIP_URI CSeq: 736513480 NOTIFY Expires: 600 Event: CallerId Content-Type: STORM/CallerId User-Agent: ApaSoftPhone/1.3.1.2 MxSF/v3.5.3.4Payload <rpc> <operation-name>caller-id</operation-name> <call-description>

<from>Caller_Sip_Uri</from><to>Called_Sip_Uri</to><call-id>Call-Id</call-id><cseq>CSeq</cseq><contact>Contact</contact>

</call-description> </rpc>

Page 7: The STORM Project Analysis, Design and Implementation

STORM : Sequence Diagram

Sip User APA PC

SIP STORM Protocol based on SIP

INVITE

SUBSCRIBE

Ack : 202 OK

100 TRYING

180 RINGINGNOTIFY (Caller-Id)

Ack : 202 OK

NOTIFY (Caller-Id-Reply)

Ack : 202 OK200 OK

NOTIFY (Caller-Id-Reply)

Ack : 202 OK

NOTIFY (Caller-Id-Reply)

Ack : 202 OK486 BusyHere/603 Decline/302 Forward

BYE NOTIFY (Current-Call-Notify)

Ack : 202 OK

200 OK

Call accepted

by PC

The APA accepts the Call / gets the

handset

<rpc> <operation-name>caller-id-reply</operation-name> <content>Accept</content> <call-description>

<from>Caller_Sip_Uri</from><to>Called_Sip_Uri</to><call-id>Call-Id</call-id><cseq>CSeq</cseq><contact>Contact</contact>

</call-description> </rpc>

Update the incoming call state

Call rejected by PC

APA terminates the call

Update call state

Page 8: The STORM Project Analysis, Design and Implementation

STORM : The Subscribe/Notify mechanism

StormUser_A StormUser_B

GenerateContext

SendRequest EvNewContextNeeded

EvBasRequest

SendStatus

SendRequest

EvBasStatus

EvBasStatus

EvBasRequest

SendStatus

202 OK

Subscribe

NOTIFY

202 OK

TimeOutEvBasTimeOut

CancelRequestEvBasRequestCancelled Cancel()

- How to support the Subscribe/Notify Mechanism using the M5T Sip Stack V3.5 ?

Page 9: The STORM Project Analysis, Design and Implementation

M5TFramework (MITOS)

Stack SIP M5T v 3.5

Page 10: The STORM Project Analysis, Design and Implementation

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

Stack SIP M5T v 3.5

Page 11: The STORM Project Analysis, Design and Implementation

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

Stack SIP M5T v 3.5

Page 12: The STORM Project Analysis, Design and Implementation

CSipEngine

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

Stack SIP M5T v 3.5

Page 13: The STORM Project Analysis, Design and Implementation

CApaSoftPhoneDlg

CSipEngine

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

Stack SIP M5T v 3.5

GUI

Page 14: The STORM Project Analysis, Design and Implementation

CApaSoftPhoneDlg

+NewCallA()+AcceptedA()+AckReceivedA()+RegistrationStateA(()+TerminatedA()+...()

«interface»ISipInterface

«uses»

CSipEngine<<realize>>

+InviteA()+AcceptA()+RejectA()+TerminateA()+ShutdownA()+...()

«interface»ISipSignaling

«uses»

<<realize>>

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

Stack SIP M5T v 3.5

GUI

Page 15: The STORM Project Analysis, Design and Implementation

+OnInitDialog()()

-m_strDisplayName-...

CInviteUserDlg

+...()

-m_bConnectTcp-m_uTcpRemoteConnectionPort-...

CConfigPersistentConnections

+...()-...

CAddressBookDlg CNewCallDlg

CApaSoftPhoneDlg

11

1

1

+NewCallA()+AcceptedA()+AckReceivedA()+RegistrationStateA(()+TerminatedA()+...()

«interface»ISipInterface

«uses»

CSipEngine<<realize>>

+InviteA()+AcceptA()+RejectA()+TerminateA()+ShutdownA()+...()

«interface»ISipSignaling

«uses»

<<realize>>

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

Stack SIP M5T v 3.5

+OnInitDialog()()

-m_strDisplayName-...

CLastCallsDlg

1

GUI

Page 16: The STORM Project Analysis, Design and Implementation

+OnInitDialog()()

-m_strDisplayName-...

CInviteUserDlg

+...()

-m_bConnectTcp-m_uTcpRemoteConnectionPort-...

CConfigPersistentConnections

+...()-...

CAddressBookDlg CNewCallDlg

CApaSoftPhoneDlg

11

1

1

+NewCallA()+AcceptedA()+AckReceivedA()+RegistrationStateA(()+TerminatedA()+...()

«interface»ISipInterface

«uses»

CSipEngine<<realize>>

+InviteA()+AcceptA()+RejectA()+TerminateA()+ShutdownA()+...()

«interface»ISipSignaling

«uses»

<<realize>>

CStormEngine

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

«uses»«uses»

«uses» «uses»

«uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

1

Stack SIP M5T v 3.5

+OnInitDialog()()

-m_strDisplayName-...

CLastCallsDlg

1

GUI

Page 17: The STORM Project Analysis, Design and Implementation

+OnInitDialog()()

-m_strDisplayName-...

CInviteUserDlg

+...()

-m_bConnectTcp-m_uTcpRemoteConnectionPort-...

CConfigPersistentConnections

+...()-...

CAddressBookDlg CNewCallDlg

CApaSoftPhoneDlg

11

1

1

+NewCallA()+AcceptedA()+AckReceivedA()+RegistrationStateA(()+TerminatedA()+...()

«interface»ISipInterface

«uses»

CSipEngine<<realize>>

+InviteA()+AcceptA()+RejectA()+TerminateA()+ShutdownA()+...()

«interface»ISipSignaling

«uses»

<<realize>>

+StormMakeCallReceivedA()+StormMakeCallReplyReceivedA()+StormCallerIdReceivedA()+StormCurrentCallNotifyReceivedA()+StormCallHistoryReceivedA()+...()

«interface»IStormInterface +StormMakeCallA()

+StormMakeCallReplyA()+StormCallerIdA()+StormCallerIdReplyA()+StormCallHistoryA()+StormCurrentCallNotifyA()+StormCallHistoryReplyA()+...()

«interface»IStormSignaling

«uses»

<<realize>>

CStormEngine<<realize>>

«uses»

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

«uses»«uses»

«uses» «uses»

«uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

1

Stack SIP M5T v 3.5

+OnInitDialog()()

-m_strDisplayName-...

CLastCallsDlg

1

GUI

Page 18: The STORM Project Analysis, Design and Implementation

+OnInitDialog()()

-m_strDisplayName-...

CInviteUserDlg

+...()

-m_bConnectTcp-m_uTcpRemoteConnectionPort-...

CConfigPersistentConnections

+...()-...

CAddressBookDlg CNewCallDlg

CApaSoftPhoneDlg

11

1

1

+NewCallA()+AcceptedA()+AckReceivedA()+RegistrationStateA(()+TerminatedA()+...()

«interface»ISipInterface

«uses»

CSipEngine<<realize>>

+InviteA()+AcceptA()+RejectA()+TerminateA()+ShutdownA()+...()

«interface»ISipSignaling

«uses»

<<realize>>

+StormMakeCallReceivedA()+StormMakeCallReplyReceivedA()+StormCallerIdReceivedA()+StormCurrentCallNotifyReceivedA()+StormCallHistoryReceivedA()+...()

«interface»IStormInterface +StormMakeCallA()

+StormMakeCallReplyA()+StormCallerIdA()+StormCallerIdReplyA()+StormCallHistoryA()+StormCurrentCallNotifyA()+StormCallHistoryReplyA()+...()

«interface»IStormSignaling

«uses»

<<realize>>

CStormEngine<<realize>>

«uses»

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

«uses»«uses»

«uses» «uses»

«uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

1

Stack SIP M5T v 3.5

+OnInitDialog()()

-m_strDisplayName-...

CLastCallsDlg

1

GUI

«utility»Expat Parser

Page 19: The STORM Project Analysis, Design and Implementation

+OnInitDialog()()

-m_strDisplayName-...

CInviteUserDlg

+...()

-m_bConnectTcp-m_uTcpRemoteConnectionPort-...

CConfigPersistentConnections

+...()-...

CAddressBookDlg CNewCallDlg

CApaSoftPhoneDlg

11

1

1

+NewCallA()+AcceptedA()+AckReceivedA()+RegistrationStateA(()+TerminatedA()+...()

«interface»ISipInterface

«uses»

CSipEngine<<realize>>

+InviteA()+AcceptA()+RejectA()+TerminateA()+ShutdownA()+...()

«interface»ISipSignaling

«uses»

<<realize>>

+StormMakeCallReceivedA()+StormMakeCallReplyReceivedA()+StormCallerIdReceivedA()+StormCurrentCallNotifyReceivedA()+StormCallHistoryReceivedA()+...()

«interface»IStormInterface +StormMakeCallA()

+StormMakeCallReplyA()+StormCallerIdA()+StormCallerIdReplyA()+StormCallHistoryA()+StormCurrentCallNotifyA()+StormCallHistoryReplyA()+...()

«interface»IStormSignaling

«uses»

<<realize>>

CStormEngine<<realize>>

«uses»

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

«uses»«uses»

«uses» «uses»

«uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

1

Stack SIP M5T v 3.5

+OnInitDialog()()

-m_strDisplayName-...

CLastCallsDlg

1

GUI

«utility»Expat Parser

+StartElementHandler()+EndElementHandler()+CharacterDataHandler()+CommentHandler()+DefaultHandler()

«interface»IXMLParserMgr

<<realize>>

Page 20: The STORM Project Analysis, Design and Implementation

+OnInitDialog()()

-m_strDisplayName-...

CInviteUserDlg

+...()

-m_bConnectTcp-m_uTcpRemoteConnectionPort-...

CConfigPersistentConnections

+...()-...

CAddressBookDlg CNewCallDlg

CApaSoftPhoneDlg

11

1

1

+NewCallA()+AcceptedA()+AckReceivedA()+RegistrationStateA(()+TerminatedA()+...()

«interface»ISipInterface

«uses»

CSipEngine<<realize>>

+InviteA()+AcceptA()+RejectA()+TerminateA()+ShutdownA()+...()

«interface»ISipSignaling

«uses»

<<realize>>

+StormMakeCallReceivedA()+StormMakeCallReplyReceivedA()+StormCallerIdReceivedA()+StormCurrentCallNotifyReceivedA()+StormCallHistoryReceivedA()+...()

«interface»IStormInterface +StormMakeCallA()

+StormMakeCallReplyA()+StormCallerIdA()+StormCallerIdReplyA()+StormCallHistoryA()+StormCurrentCallNotifyA()+StormCallHistoryReplyA()+...()

«interface»IStormSignaling

«uses»

<<realize>>

CStormEngine<<realize>>

«uses»

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

«uses»«uses»

«uses» «uses»

«uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

1

Stack SIP M5T v 3.5

+OnInitDialog()()

-m_strDisplayName-...

CLastCallsDlg

1

GUI

«utility»Expat Parser

CStormXML«uses»

+StartElementHandler()+EndElementHandler()+CharacterDataHandler()+CommentHandler()+DefaultHandler()

«interface»IXMLParserMgr

<<realize>>

-Fin1

1

-Fin2

*

Page 21: The STORM Project Analysis, Design and Implementation

+OnInitDialog()()

-m_strDisplayName-...

CInviteUserDlg

+...()

-m_bConnectTcp-m_uTcpRemoteConnectionPort-...

CConfigPersistentConnections

+...()-...

CAddressBookDlg CNewCallDlg

CApaSoftPhoneDlg

11

1

1

+NewCallA()+AcceptedA()+AckReceivedA()+RegistrationStateA(()+TerminatedA()+...()

«interface»ISipInterface

«uses»

CSipEngine<<realize>>

+InviteA()+AcceptA()+RejectA()+TerminateA()+ShutdownA()+...()

«interface»ISipSignaling

«uses»

<<realize>>

CStorm...Dlg

1

+StormMakeCallReceivedA()+StormMakeCallReplyReceivedA()+StormCallerIdReceivedA()+StormCurrentCallNotifyReceivedA()+StormCallHistoryReceivedA()+...()

«interface»IStormInterface +StormMakeCallA()

+StormMakeCallReplyA()+StormCallerIdA()+StormCallerIdReplyA()+StormCallHistoryA()+StormCurrentCallNotifyA()+StormCallHistoryReplyA()+...()

«interface»IStormSignaling

«uses»

<<realize>>

CStormEngine<<realize>>

«uses»

+DispatchAsyncMsg()+DispatchSyncMsg()+DispatchTimer()

CSipThread

+EvBasReques()+EvBasRequestCancelled()+EvBasStatus()+EvBasTimeout()

«interface»IBasicEvMgr

+EvNewContextNeeded()+EvReadyToDestroy()

«interface»IUaEventMgr

+EvDialogTerminated()

«interface»IDialogMgr

«interface»IClientAuthenticationEvMgr

«interface»IRedirectionEvMgr

«interface»IReliableProvisionalResponseEvMgr

«interface»IRegistrationEvMgr

«interface»ISessionEvMgr

«interface»SessionTimerEvMgr04

«uses»

MxSFMxRTP

M5TFramework (MITOS)

«uses» «uses»

«uses»«uses»

«uses» «uses»

«uses»

+SendRequest()+SendStatus()+SetEventManager()+CancelRequest()

«interface»IBasicSvcMgr

1

Stack SIP M5T v 3.5

+OnInitDialog()()

-m_strDisplayName-...

CLastCallsDlg

1

GUI

«utility»Expat Parser

CStormXML«uses»

+StartElementHandler()+EndElementHandler()+CharacterDataHandler()+CommentHandler()+DefaultHandler()

«interface»IXMLParserMgr

<<realize>>

-Fin1

1

-Fin2

*

Page 22: The STORM Project Analysis, Design and Implementation

The Demo !