CTI In General [Was: Re: [OGo-Users] OGo & Asterisk]

Adam Tauno Williams users@opengroupware.org
Sat, 15 Dec 2007 18:08:04 -0500


> Been following this asterisk CTI dialer thread with great enthusiasm. I can 
> really use this in the future and will start to build up a server next week 
> when I get some time. Just a question. What are the plans for implementing 
> missed calls and the resulting messages? Will these be accessible via the UI 
> some how? I know that with asterisk you can do many things with message, just 
> wondering what the current state of implementation is or in what direction 
> are you moving?

I'm also interested in CTI, but not specifically Asterisk.  Perhaps we
can extend the CTI capabilities of OGo in a generic fashion like the
current CTI support?  

Currently the CTI support is via an 'interface' that just declares two
methods -
- (BOOL)canDialNumber:(NSString *)_number;
- (BOOL)dialNumber:(NSString *)_number fromDevice:(NSString *)_device;
 - and just supports poking the PBX to make a call from within OGo.

If someone is developing Asterisk support for more features [preferably
as a bundle] I'd like to see it not welded to Asterisk but use some
interface to inter-operate with the "PBX";  that way it could also
potentially support other systems.

For instance, we have Nortel PBXs that use "Call Pilot" for messaging
and voice mail.  "Call Pilot" offers a [really half-baked] Outlook
plugin that provides the ability to call contacts (like the OGo CTI) as
well as a [half-baked] "Unified Messaging".  We've decoded /
reverse-engineered most of the functionality / protocol of that
solution.  It is one of my projects for next year to try and make a CTI
bundle for OGo that supports Nortel systems.  

<aside>Lucky for me the protocol is largely based on IMAP and uses a
bunch of X- commands to invoke PBXish operations - messaging as in
checking for new messages is straight IMAP.</aside>

Maybe we could agree on an extended CTI interface so we don't duplicate
work?  (And perhaps this is more of a developers@ question).

Such as [this is off the cough] -
- (BOOL)newMesssages;
- (NSArray)listMessages;
- (UnifiedMessage)getMessage;(NSString *)_messageId;
- (BOOL)deleteMessage:(NSString *)_messageId;
- (BOOL)forwardMessage:(NSString *)_messageId 
           toExtension:(NSString *)_extensionId;

And maybe do something the same for CDR?  Just encapsulate core /
fundamental CDR and unified messaging support.  CDR seems like it could
be pretty simple as it is a read-only thing.

This way (a) nothing would need to effect OGo Core and we could
potentially support multiple system.

My ultimate dream would be to see a IMAP<->DAV gateway [1] in ZideStore
and a UnifiedMessage<->DAV gateway so apps could use a "real" Unified
Message store to at least see a user's messages.  The latter should be
relatively easy if there is a Unified Messaging bundle/interface.  But I
suppose that may be a ways off [ first I have to get some *@&$*&^@$@$
content to appear in a ^@&^@#*&@# ZideStore folder ].

<aside>The current model of something-plugs-into-MUA-x is both flaky and
limiting,  something on the sever would way more useful.  I don't really
want to built support for the Unified Messaging architecture into
multiple places - Consonance, our intranet, our business system, etc....
and this seems like groupware-ish functionality to me.</aside>

[1] http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=4 &
http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1173