Setting CallerID NAME via AGI breaks Manual Dialing and Xfer
Posted: Wed Nov 16, 2016 10:19 am
Hello,
So I'm having an interesting little problem. I've built a handful of custom agi's into my workflow and one of them seems to be creating an issue. This AGI get's called in the carrier dialplan like so:
It does some logical operations and then uses php-agi to set the callerid number and name.
Then it does some more logic and makes the dial...
It all works nicely and the name and number change as expected, except for one piece. When the CID NAME specifically is set, the Agent UI does not register that a MANUAL DIAL (Auto dials still behave normally) has connected. The connection happens and the Agent and the Dialed Party can speak no problem but the UI seems to lose track of the channel for some reason causing it to register a "Dial Timeout" even though the call is still going on. This effect also is seen on Transfers, the UI does not register that the 3rd party has connected thus making options like "Leave 3-way Call" and "Hang-up Lines" unusable.
My assumption is that somewhere Vicidial is using the callerid field "M4715982234234234..." to keep track of the channel, but all the tables seem to sync up... so I'm stuck.
So I'm having an interesting little problem. I've built a handful of custom agi's into my workflow and one of them seems to be creating an issue. This AGI get's called in the carrier dialplan like so:
- Code: Select all
exten => _61NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
exten => _61NXXNXXXXXX,2,AGI(custom.agi,+${EXTEN:1})
exten => _61NXXNXXXXXX,3,Hangup
It does some logical operations and then uses php-agi to set the callerid number and name.
- Code: Select all
$agi->exec("SET", "CALLERID(all)=\"$new_cid_name\"<$new_cid_number>");
Then it does some more logic and makes the dial...
It all works nicely and the name and number change as expected, except for one piece. When the CID NAME specifically is set, the Agent UI does not register that a MANUAL DIAL (Auto dials still behave normally) has connected. The connection happens and the Agent and the Dialed Party can speak no problem but the UI seems to lose track of the channel for some reason causing it to register a "Dial Timeout" even though the call is still going on. This effect also is seen on Transfers, the UI does not register that the 3rd party has connected thus making options like "Leave 3-way Call" and "Hang-up Lines" unusable.
My assumption is that somewhere Vicidial is using the callerid field "M4715982234234234..." to keep track of the channel, but all the tables seem to sync up... so I'm stuck.