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:
- The executable
- The command line
- The sessions icon to be shown in the main panel
- The control button for remote start
- The VectorId
- The button field for Hold Allowed
- The button field for Transfer Allowed
- Use Sound Card (to prevent the start of other calls of that
type)
- The button field for SDP Transport (entries UDP and RTP)
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