[Vtigercrm-developers] Asterisk Good News
vtiger at camden.net
vtiger at camden.net
Thu Aug 28 13:16:39 GMT 2014
I dont think there is "issue" with the java proxy approach, what I think is
issue is this AGI-AMI hybrid thing you have going on, AGI is notoriously
more difficult to program in to begin with, you literally have to write a
proper handler for every event that might occur, plus AGI and AMI are not
inherently meant to work together
this is pretty easy with IVRs, we know we are sending caller there, and we
can except a few limited outcomes, plus you have to use AGI to capture
input, but with just a regular phone call there are to many things that can
happen and we are not expecting input to capture
last night we fixed up our test servers but removed the agi fire for
inbound context, so we are only running the [vtiger_outbound] this means no
inbound notification and no logging and voice recording of calls of those
calls, we are going to test if this thing stays stable for just click to
call in light of that you also found issue where inbound can be sent to
endless loop
in our limited testing (just one night) we noticed AMI streaming data in
your webapp.sh on a inbound call without the agi fire, with some error
messages we think are related to it was expecting the AGI to fire, it did
not seem to effect anything and so far has not locked up and continues to
work
we know your using the AMI to originate outbound, and it seems your using
AMI for at least part of the inbound, so the question remains why AGI at
all, you guys say its to limited overhead and cut down on data you need to
phrase, yet your phrasing it anyway?? if you want to cut down the data you
get from the AMI stream, have the AMI user have originate and read call
only rights, you will only get data the pertains to actual phone calls and
cut out 95% of the data AMI would normally stream that you dont care about
anyway
now with AGI gone, your problems will be gone, you wont be able to as
easily do your own CDR logging, and you wont be able to force all calls to
be recorded (a function we dont think you should be doing anyway) however
the CDR in vtiger is a good idea but there is better option
use the existing SQL CDR data Asterisk will provide, you say you want to
use a API, so write one, we think that is better idea that opening SQL to
world if vtiger and Asterisk are not on same computer anyway
write a php file that you would have asterisk admin put on asterisk server
where Apache can serve up, in that php file, you need to pass it the
extension and phone number(s) you are going to pull data for, have the php
run the sql statements and return the data you want (date, time, callerID,
source, destination, duration), we would use XML put there are lots of
choices
if you have free PBX check out the user panel, specifically the call
monitor, what you want to do is reconstruct that but only the extension and
phone numbers for that instance, you may want to drop the extension search
part so if I click on a contact then go to PBX manger I see all calls to
and from that contact and which colleges of mine took or placed those
calls
also if asterisk was told to record a call you will notice in the user
panel under call monitor there is a column "monitor" if there is a
recording there be 2 icons, one to download the sound file and one to
listen to it, you could do the same, however I would advise to have access
to recording off by default with the option for the vtiger admin to allow
access on a per user basis
the above would allow vtiger to tie all calls in asterisk to vtiger
records, something AGI can never do, you have no control over forcing uses
to click to call out of vtiger, If I know a phone number, Im not going to
go searching for it to click on it, as result the call will not show in
vtiger, will vtiger log call on inbound if user was not logged into vtiger?
we have not tested, but if the vtiger PBX CDR records are incomplete they
are no good
----------------------------------------
From: "Prasad" <prasad at vtiger.com>
Sent: Thursday, August 28, 2014 12:21 AM
To: "vtiger at camden.net" <vtiger at camden.net>,
"vtigercrm-developers at lists.vtigercrm.com"
<vtigercrm-developers at lists.vtigercrm.com>
Cc: "Akshath T.A" <akshath.t at vtiger.com>
Subject: Re: [Vtigercrm-developers] Asterisk Good News
The proxy approach taken would help us stay loose coupled with Asterisk
and provide neutral interface to Vtiger. This benefit may not be obvious
and sound like a overhead
but give it a thought.
We generally lean towards working with APIs than DB with other application
- yes there would be performance benefits but would it comes against the
cost of maintenance and configurations. It would be the choice to consider
when you pursuing CRM and Asterisk
to be on the same server.
As said earlier, there are many approaches possible to get the integration
- we have taken one of them that can retain loose coupling. We are
interested to learn other approaches experts from our community would
evolve with.
Regards,
Prasad
Connect with us on: Twitter I Facebook I Blog I Wiki I Forums I Website
On Thu, Aug 28, 2014 at 2:01 AM, vtiger at camden.net <vtiger at camden.net>
wrote: I know it does not pull from asterisk DB at all
I was saying if you did it would not be necessary to pull in intervals at
all, you pull only when data is needed, the fetch cdr by clicking on pbx
manger was example of needed the data that would cause a pull,
if you did that it would be not be needed for vtiger to maintain its own
call logging and CDR functions, it would also give bonus that calls make
outside of scope of vtiger would show in PBX Manager in vtiger
also pulling from asterisk vtiger would not need to force call recording
on every call, which is a waste of system resources, especially if asterisk
is already recording calls, not just a waste of HD space but call recording
uses CPU always introduces latency into a call so you dont want both can
have negative impacts on call quality
by taking call recording out of vtiger you also put the decision to call
record or not back in hands of asterisk admins and end users that want or
dont want call recording, call centers are the only business In my
experience that want every call recorded no matter what, they typically do
it out of a call queue and have an announcement to satisfy legalities "your
call may be recorded for quality and training" most everyone else typically
just wants the feature code to turn it on and off on the fly
----------------------------------------
From: "Akshath T.A" <akshath.t at vtiger.com>
Sent: Wednesday, August 27, 2014 3:45 PM
To: vtiger at camden.net
Cc: vtigercrm-developers at lists.vtigercrm.com
Subject: Re: [Vtigercrm-developers] Asterisk Good News
?Vtiger will not poll asterisk DB every time when user clicks on
PBXManager to fetch CDR. Once the call is disconnected connector would send
the CDR event and vtiger would store these information in
"vtiger_pbxmanager" table. So whenever PBXManager is opened Vtiger fetches
information from this table and displays it for the user.
regards,
AKshath
On Wed, Aug 27, 2014 at 9:42 PM, vtiger at camden.net
<vtiger at camden.net> wrote: yes the overhead for AMI listen can be issue
normally dealt with by giving the AMI user Origination and Read Call only
rights, that cuts down on 99% of what you need to parse
in larger deployments where even the overhead of incoming calls to other
extensions is burdensome, AMI proxy where each user has a proxy user that
only listens to AMI data relevant to there own channel(s)
I would think you would only pull SQL data when user in vtiger clicks on
PBXmanager (the user version where they can see the call logs, not the one
for admin to change settings), and display the data rather than pulling it
all the time and creating your own tables, if remote access to SQL is the
concern its easy to write a php XML API, thats how our windows based call
notification works for vtiger so we did not have to open SQL to outside
world, when call comes in we take incomming phone number send it to our
API, the API does all the SQL queries, then returns XML of the results, we
did this with php, all that would be required is for you guys to say hey
put this php file on your asterisk server and modify the database name,
user and secret to match
----------------------------------------
From: "Akshath T.A" <akshath.t at vtiger.com>
Sent: Wednesday, August 27, 2014 11:09 AM
To: vtiger at camden.net
Cc: vtigercrm-developers at lists.vtigercrm.com
Subject: Re: [Vtigercrm-developers] Asterisk Good News
VtigerAsteriskApp does not modify any configuration of Asterisk directly.
We have recommended changes to be made in Asterisk configuration to get the
AGI request back to the App. Please make sure to track the changes in case
you need to revert back. AGI vs AMI AGI events are listened for incoming
calls as AMI event parsing had to deal with bit-of overhead (as we did in
5.4.0 Asterisk Integration). To origniate outgoing call AMI action is used
(borrowed from our earlier implementation). Working with AGI events is
lot-easier than processing AMI ourselves. The hard-work is taken care by
the asteriskjava library.
Polling Asterisk DB from CRM server was not a model considered as both the
applications can be setup on different machines. Also php script used for
regular polling in short-intervals (specially during active call handling)
demands server resources and impatcts CRM performance - we had encountered
this in our earlier implementation.
The approach of implementation we have taken may not be the only way to
get the integration. We are hopeful to see more such coming from community
and take away the learning from the same.
regards,
AKshath
On Wed, Aug 27, 2014 at 7:39 PM, vtiger at camden.net
<vtiger at camden.net> wrote: yes I am aware of what it was saying... but
101 was most certainly a valid extension, at the same time this was going
on we could send our own origination command to AMI for 101 to call out and
it worked just fine, that error is not produced by asterisk at all, its not
a valid asterisk error return, you are mis-interrupting some other error
and reporting it back as a asterisk error
I think it was some error inside your java, at the time this was happening
we only saw data stream on webapp.sh on the click to call attempts, we
where also looking at data streams on your agi.sh saw nothing, the cli with
agi and verbose 10 notifications enabled saw nothing, and we also looking
at the AMI stream, nothing there as well, so we dont even think your
connector was even talking to asterisk at all
we fixed the issue last night, stopped the webapp.sh and agi.sh files and
prevented them from start @ boot, rebooted, cleared settings in vtiger PBX
manager or rather put in a bunch of junk, saved, rebooted, put settings
back into PBX manager, rebooted then turned the .sh files back on, not sure
what steps fixed but simple stop and start of .sh files and/or system
reboots did not fix
we still have issue on on test server where it seems vtiger altered
something in asterisk where all the extensions we had in vtiger no longer
will ring though a call queue, we have no data on the event we where not
actively monitoring data streams, and your asterisk connector has never
written 1 log to its own log directory, everything was working Friday, and
Monday we checked on it again and found that vtiger was stuck in endless
loop of inbound notification and those extensions would no longer sent a
sip invite though call queue, even after they where removed from vtiger and
a reboot, and the asterisk connector was completely shut down, keep in mind
these are test servers dedicated to getting vtiger to work, they are lamp +
asterisk + freepbx + vtiger only we have not moved into phase of testing
with other packages so the problems we are having can only be vtiger, this
is what concerns us about closed source java+agi, beyond we can not see
code to try to help you we now have situation where it seems your connector
and AGI have altered asterisk, we dont know whats it doing.
the whole reason we advocate for just use the AMI is its simple and works
and your not really doing anything that requires the interactivity that AGI
allows, AMI can be used to originate call as well as be monitored for
inbound, this is how tapi drivers work that plug into on site CRMs like
ACT, SAGE CRM, Lexis Nexus, ect, its also how sugar / sweet crm are
handling it
I think the tiring the call records to data in vtiger is a great idea, but
why are you generating your own CDR log's via AGI, and this is where I
think you guys are hung up on using AGI, but asterisk does have it own
MySQL tables and CDR reccords, why not during the isntall of vtiger ask for
the asterisk database name and credentials and query them for the info, and
vtiger should not be forcing all calls to record, asterisk gives us ways to
record and not record calls, if you want to link to recordings fine but
again you should be looking to see if a call was recorded, beyond a
performance issue and potential duplication of whats already being done in
the Asterisk, this ventures into a legal issue, a lot of places all parties
must be notified and consent to call recording, with vtiger it forces the
recording
the general rule of thumb here is if you need user input like your making
a IVR and logging what was entered then you need AGI, if your just
originating calls and monitoring for inbound use AMI, in either case SQL
should be used to get call record data
AGI has it problems that you are unnecessarily dealing with, they are
common for AGI, what if my agi script finishes before the call ends, what
if the call ends before my agi script finishes and a whole host of other
issues that you simply dont need to deal with for what your trying to do
----------------------------------------
From: "Akshath T.A" <akshath.t at vtiger.com>
Sent: Wednesday, August 27, 2014 3:19 AM
To: vtiger at camden.net
Subject: Re: [Vtigercrm-developers] Asterisk Good News
Hi,
From the logs, it clearly states that the extension - 101 was not found by
your Asterisk server when AMI originate request sent from Vtiger
Connector.
In order to nail down the issue, can we have a online meeting today or
tomorrow so that it would help us know what really is causing the problem.
I will be available from 9:00 AM to 8:00 PM IST at my office. Please tell
us your convenient time within this so that I can send you meeting link.
Thank you.
regards,
Akshath
Vtiger
_______________________________________________
http://www.vtiger.com/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20140828/8dcaf2c1/attachment-0001.html>
More information about the vtigercrm-developers
mailing list