[asterisk-users] Manual Call Transfer // Perl // Asterisk::AGI // MySQL

Ted Tiberio ttiberio at gmail.com
Tue Feb 8 13:18:50 CST 2011


Hello Everyone!

I've hit a bit of a roadblock and I am hoping that someone might point
me in the right direction.

I am using Asterisk 1.2.4 - I do not have the option of updating it,
please do not waste your time telling me to =)

I am using PERL AGI scripts to maintain an "active calls count" field
for each phone in a mysql database table, for example (not actual
code, just trying to illustrate)

$SIG{HUP} = 'IGNORE';
....
mysql_update_call_count($user_id, ($count +1) );
$dialret = $agi->exec('Dial', $dialstring);
mysql_update_call_count($user_id, ($count -1) );

This works great, except when doing assisted transfers (or any
transfer for that matter).

We have Polycom IP550 Phones which can do the transfer with a button,
As an example of this process and the problem, and assuming these are
all internal phones dialing extensions...

phone A dials phone B
phone B presses transfer to transfer phone A to phone C
phone B hangs up

Because the Dial command in the AGI script executed when phone A
called phone B is still running the active call count remains at 1 for
phone B until the call between A and C ends (at which point they all
zero out).

I also tried using atxfer to resolve this problem and got a different behavior

phone A dials phone B
phone B presses *2 then phone C's extension to transfer phone A to phone C
phone B hangs up

an active call count remains at 1 for B and C but A drops to 0 count.

Might be worth mentioning the possibility that phone B is already on
the line when the call from phone A comes in.

I thought one possible solution might be creating an [applicationmap]
that essentially handles the assisted transfer manually. I've done a
great deal of reading on this matter and aside from the fact that I'm
still a bit fogy as to how i would even do that,.. it seems that there
is still no way for me to determine who is being transferred when the
second channel is opened (new uniqueid / agi script execution).

Is there perhaps something I am missing which would help resolve this?

I hope that I've explained my problem clearly. I have only been
tinkering with asterisk for about a week so I apologize if I'm not
using the appropriate vernacular.

Thank you!
-Ted



More information about the asterisk-users mailing list