[Asterisk-Dev] Request for comments on CTI integration

Sunrise Ltd stsltdtyo at yahoo.co.jp
Wed Jul 14 00:45:26 MST 2004


Hi

I have a request for CTI integration with Asterisk and I
am thinking about a lightweight protocol to send ringing,
pickup and hangup event notification messages along with
Caller ID from Asterisk to client devices which are NOT
phones.

The client devices will typically be desktops running a
CTI application that would do stuff like popping up a
database screen with details on the caller on the other
end of the user's phone, keep a call log etc etc. The
important thing here is that this must be totally
independent from the telephone sets used. It should still
work if the end user receives a call on his cell phone
after Asterisk has diverted it there.

I am not a protocol expert, so initially I intend to do
something very quick and dirty with Python or so.

What I have in mind is a server daemon running on the
Asterisk box, listening for connections from clients
running on remote desktops.

The client would register with the server for
authentication and then subscribe to a number of possible
notification events like

- incoming call from caller ID
- outgoing call to caller ID
- diverted from other extension
- diverted to other extension
- transferred incoming from other extension
- transferred to other extension
- pickup, hangup and timeout

Initially, as a quick and dirty hack, notifications could
be lodged by way of using an Asterisk application, ie
ctinotify_app ...

exten => 1234,1,CTInotify("INCOMING",${CALLERID})
exten => 1234,2,Dial(...)
...
exten => 1234,10,CTInotify("HANGUP",${CALLERID})
exten => 1234,11,hangup

but eventually this should be integrated with the Dial
command itself so that DIVERT, TRANSFER and PICKUP events
would also be notifiable and also for onvenience and not
to have to clutter the dialplan.

A configuration file would be used to allow and disallow
notifications for various users, something along the lines
of ...

ctinotify.conf

[general]
port=xxxx

[client1]
secret=blah
host=dynamic
devices=SIP/xxx,IAX/xxx,Zap/xxx
events=incoming, outgoing, transfer, divert, pickup,
hangup, timeout

We'd then distribute Asterisk with Perl and/or Python
based clients that would run on pretty much any platform.
Application developers on various platforms could then
pick up the event notifications from the Perl or Python
client.


I would be interested to get some comments from interested
folks before I start working on anything and also I'd like
to hear from others who might be interested to join in on
such an effort.

The idea would be to make this an integral part of the
Asterisk distribution, then leave it up to desktop
application developers to use the facility in their CTI
applications.

regards
benjamin

__________________________________________________
Do You Yahoo!?
http://bb.yahoo.co.jp/




More information about the asterisk-dev mailing list