WARNING: this is an automatic post retrieved from the Asterisk-Users Mailing List, not an authored post
Mailing-list Collector
February 08, 2011
Asterisk Users
Tags: active call, dial command, hoping that someone, internal phones
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.