Java Reference
In-Depth Information
In the native SIP stack, the SIP Client Resolver framework defines the
architecture for a solution that makes the resolution of target SIP clients
possible upon receiving SIP requests from the default port. However, it
works in a very different way; the major challenge is that it uses another
Symbian idiomatic mechanism, the ECom plug-in framework, which is
a Symbian OS generic architecture for providing and using functionality
through plug-in modules.
Native SIP clients must implement an ECom interface called SIP Client
Resolver API that is not running in the same process as the SIP client
application. Upon receiving a SIP request, outside a SIP dialog, the loaded
ECom plug-in is asked by the framework if it can handle the incoming SIP
request, based on its fields. When the plug-in responds that it can do so,
it does not handle the request itself but returns the UID of a matching SIP
client application, which uses the native SIP Client API, in the application
process itself.
The Java ME subsystem has to provide its own ECom plug-in which
provides an implementation of the relevant SIP Client Resolver classes.
Since there is only one ECom plug-in for the whole Java ME subsystem
and every VM can execute multiple Java applications, the ECom plug-in
is dynamically updated with the SIP fields that should be matched against
incoming SIP requests that should be handled by all currently running
Java applications. Figure 11.8 illustrates the internal architecture of the
JSR-180 SIP implementation.
JSR-180 SIP
Java layer
(parsing, caching)
Native layer
(KJNI, Event Server, serialization)
Native SIP stack client layer
(peers)
ECom resolver plugin
(dynamically updated)
Figure 11.8 JSR-180 SIP implementation architecture
The upper layer in Figure 11.8 is a Java code layer, internal to the
Java ME subsystem, that parses and caches information before it is
sent into native code. The upper native layer is an intermediate layer
which does not do any processing specific to the JSR functionality
but provides the required layer to jump from Java into native code
and the Java ME subsystem's idiomatic solution to the Symbian OS
asynchronous programming idiom discussed in Chapter 10 (handling
Symbian OS asynchronous operations using the Java Event Server).
Search WWH ::




Custom Search