back to the ToC

The concept of "External Applications"

KPhone SI uses the concept "External Application" to start applications for communication on both ends of the call. A good example is KPhoneIM, a simple point-to-point IM application, other examples are the MICE tools of the project MBONE such as vic and wbd (whiteboard). Those applications are triggered by an INVITE transaction with a specfic SDP-description, as describee below. KPhone SI itself supports STUN for NAT traversal. It may be used for all media tools. External Applications may make use of it, if they support symmetric signalling. KPhoneIM does this and so may serve as an example for further apps. The MICE tools, originally designed for multicast do not, but is is possible to adapt them.

The SDP-Description

RFC 2327 proposes the type m=application, for non audio and non video sessions. The parameter format must be defined per case. Thus we define the format for generalized sessions:
m=application <port> <transport> <fmt>
transport may be UDP or RTP/AVP
fmt is set to the session's "VectorId". We use imp2p for point to point IM.
To denote applications "remote startable the tag
a=fmtp:<fmt> rstart
is added.

Preparing the SDP-Parameters: Initialization by Session Table and VectorID

The KPhone SI has four entries for external sessions. It is up to the user to initialize them. The Vector-ID defines the session type. Only if both peers use the same, the session will be accepted, otherwise the call is rejected.

Per session template the following information can by specified by configuration: You find a more detailed explanation about the configuration of a external application in the chapter How to configure the phone

The Application

Between KPhone SI and the application no communication is implemented. Therefore all information, the application needs, must be transfered in the commandline. To support this KPhone SI offers a set of variables, which may be used to  compose the command line. They are substituted by the phone:
 
%A IP address of the peer
%P media port of the peer
%O own media port
%I direction flag equals to o for an outgoing to i for an incoming call
%T selected transport media ,0 = UDP, 1 = RTP/AVP
%D the Call-ID
%M the own URI
%C the partner URI
%L the own IP-address
%R the referto-URI

back to the ToC