Hello All,

My name is Nicholas Gill. I have been asked to investigate the
possibility of adding third party call control and monitoring (in the
form of a CSTA [1] interface) to sipXecs.

I have been playing with sipX over the last few days [2] and after
looking at the architecture, i realise that a centralised structure (as
is common with most legacy PBX systems (and a precursor to implementing
3pcc)) doesn't really fit in this scenario.

Even given this, some form of call control could be generally useful in
a number of scenarios. I can see in the roadmap that a form of 3pcc is
planned for the ACD module, but this does not cover normal user
extensions and calls which is useful for the implementation of
UserPortals and other CRM integration/screen pop applications.

Essentially system-wide CSTA would be a superset of the desired
functionality for the ACD, CSTA generally uses the ASN.1 BER [3] however
Phase III introduces an XML encoding that (i believe) would meet the
requirements described, while additionally providing flexibility for
other applications.

I can imagine that such a CSTA interface could leverage uaCSTA (with
UA's that support it) to provide remote AnswerCall and other requests
that require interaction of the UA, however i don't know where i may
start looking at this or what the best way to approach this may be..

My experience with SIP and uaCSTA so far is limited to reading their
specifications (although uaCSTA is really very similar to CSTA Phase III
with which i am very familiar), and my experience with sipX is even more
limited. Any help about approaches to implementing this or ideas if it's
even feasible are most welcome.

Browsing sipXcallLib looks promising, esp. cp/Connection.h which appears
to have most of the requests, events and call states that would be used
in implementing a csta interface, however i am not sure where this
library fits into the sipx architecture.

In any case, any ideas about how this would be planned/implemented are
most welcome.

Thanks,

-nick


[1] CSTA is an interface for computer applications to monitor and
control subscribers in a phone system. ref:
http://www.ecma-international.org/publications/standards/Ecma-269.htm

A pointless example of what a CSTA application may look like:

// an example object that represents a connection to a telephony switch
CSwitchInterface sipx_switch();

sipx_switch.AddEventListener(this);
sipx_switch.Connect("172.16.0.10", "CSTA user", "CSTA pass");

// Initiate a call from 200 to 201
sipx_switch.MakeCall("200", "201");

virtual void OnEventCallControlCallDelivered(ConnectionID conn_id, const
string& calling, const string& called, etc...)
{
  // conn_id is a Device/Call identifier combination
  sipx_switch.AnswerCall(conn_id);
}

[2] I have setup a computer with sipX along with Asterisk (acting as a
gateway to a 4 port BRI interface), very, very fun to have called my
home phone from ekiga and transfer to a grandstream!

[3] Basic Encoding Rules - a binary way of encoding ASN.1 structures

_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev

Reply via email to