[OGo-Discuss] CTI Integration

Sebastian Reitenbach discuss@opengroupware.org
Wed, 28 Mar 2007 12:49:42 +0200


discuss@opengroupware.org wrote: 
> On Mar 28, 2007, at 07:11, Sebastian Reitenbach wrote:
> > in SkyDialNumber.m, in (NSString *)activeCTITelephone, a Default
> > CTIRemoteHostToDevice is checked, to map the client hosts with  
> > telephone
> > device. This is fine with "older" telephone systems, but not really  
> > useful
> > in a modern world,
> 
> Only that the far majority of the modern world still uses phones  
> attached to a specific place, even if its VoIP one ;-)
> 
> > where the telephones are more or less mobile, e.g. I log
> > in from any host, and my telephone number is still the same,  
> > because I use a
> > softphone.
> 
> Yes, some people do that :-)

yes, they do, massively, assume some sales people, stuffed with a voip 
client on their notebook, connected via VPN to the company, or employees 
working at home, ... In my eyes, this is a rapidly growing group of 
telephone users, which not uses static assigned desktops to notebooks.
> 
> > This check seems to be also useless, if there are proxies used to  
> > access
> > ogo, or if users work with thin clients from a terminal server. So  
> > all the
> > users will access ogo from the same IP address.
> 
> Yes. Its for inhouse operation.
Terminal servers are used inhouse, at least what I mean with terminal server 
in the old unix style, e.g. a lot of people connect vi X or NX to a powerful 
station, to work on this one, If they access the groupware, they all come 
from that one IP address. I think this is also not too uncommon usage.

> 
> > I'd like to propose the use of a telephone field, e.g. 04_tel_ext,  
> > that
> > stores an internal telephone system extension of accounts. When the  
> > account
> > log in, then this number is used to determine the telephone of the  
> > user. I
> > use it that way with SkyDialLink, and an external php script.
> 
> I'm not sure why you need a separate number for that? Sounds to me  
> like it would be any of the regular numbers which is then matched  
> against the phone prefix pattern of the PBX?

ah, you mean this snippet of code, I found in the STLIDialer.m:

#warning need prefix mapping table here ...
  if ([_number hasPrefix:@"+493916623"])
    _number = [_number substringFromIndex:10];
  else if ([_number hasPrefix:@"+49"]) {
    _number = [_number substringFromIndex:3];
    _number = [@"00" stringByAppendingString:_number];
  }
  else
    _number = nil;

I was already wondering, what this is used for, now I now ;P



> 
> > I am not sure about that. Also in SkyDialNumber.m, in - (id)dialer,  
> > it tries
> > to create a dialer:
> >   dialer = [[WOApplication application] createCTIDialer];
> >
> > but whatever I do, the dialer is always nil.
> 
> Start in GDB, set a breakpoint, see what it does.
I think I need to do, and hopefully find out.

> 
> > Anybody could explain me, how the createCTIDialer is intended to work?
> 
> Could you ask the question in a more specific way? I think the  
> sourcecode is rather obvious.

in SkyDialNumber.m the following line appears:
dialer = [[WOApplication application] createCTIDialer];

the method createCTIDialer I found it is implemented in OpenGroupware+CTI.m

but when I then add a NSLog(@"blah whathever"); into the method in 
OpenGroupware+CTI.m I do not see the output on the command line showing up.

I have not found a method implementation anywhere else of it, so I was 
wondering what it is calling there.

I also tried to change the line 
dialer = [[WOApplication application] createCTIDialer];
into 
dialer = [[WOApplication application] XXcreateCTIDialer];
just to see what happens, and I got an runtime exception, does not respond 
to XXcreateCTIDialer.

Sebastian