[asterisk-bugs] [JIRA] (ASTERISK-27920) app_queue: Queue member considered inuse after immediately hanging up during dialing.
Asterisk Team (JIRA)
noreply at issues.asterisk.org
Mon Dec 3 17:16:50 CST 2018
[ https://issues.asterisk.org/jira/browse/ASTERISK-27920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Asterisk Team updated ASTERISK-27920:
-------------------------------------
Target Release Version/s: 15.7.0
> app_queue: Queue member considered inuse after immediately hanging up during dialing.
> -------------------------------------------------------------------------------------
>
> Key: ASTERISK-27920
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-27920
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Applications/app_queue
> Affects Versions: 13.21.0
> Environment: Asterisk v13.21.0, Telephone.
> Reporter: Cao Minh Hiep
> Assignee: Unassigned
> Target Release: 13.24.0, 15.7.0
>
> Attachments: ast_configs.csv, ast_extensions.csv, Unconditional_call_forward-CLI_logs_13.21.txt, Unconditional_call_forward_failed_full_logs_13.21.txt, Unconditional_call_forward_failed_queue-logs_13.21.txt
>
>
> Hello,
> We found an issue when making an Unconditional Call Forward as the following:
> 1. Two phones A and phone B in two work groups.
> 2. Setup an Unconditional Call Forward from phone A to phone B.
> 3. Make a call from outside to phone A.
> 4. Phone A will be not ringing, it forwards to phone B.
> 5. Phone B will be ringing, then pick up phone B.
> 6. After picking up phone B, immediately hang up phone B.
> 7. Phone B has been hung up, however still hear ringing sound from the outside phone.
> 8. Queue log will output the message of "has another call trying, can't receive the call "
> 9. Hang up the outside phone then try to make another call.
> 10. Now we can hear ringing sound from outside phone but, phone B now is not ringing.
> We investigated the issue and understood that:
> 1). It will happen 100% with the scenario above.
> 2). And It will not happen if picking up the phone and answer.
> 3). When making an unconditional call forward,
> the queue member of the phone A will be added to pending members container,
> and the queue member of the phone B will be not added to.
> 4). Normally, the added queue member will be removed after hung up the phone at update_queue().
> 5). When the issue happens, It will not be hung up in this way, therefore
> the added queue member will not be removed.
> 6). We tried to fix this issue by adding "pending_members_remove(member)" into the following code:
> {noformat}
> if (ast_check_hangup(peer)) {
> /* Agent must have hung up */
> ast_log(LOG_WARNING, "Agent on %s hungup on the customer.\n", ast_channel_name(peer));
> + pending_members_remove(member);
> ast_queue_log(queuename, ast_channel_uniqueid(qe->chan), member->membername, "AGENTDUMP", "%s", "");
> blob = ast_json_pack("{s: s, s: s, s: s}", "Queue", queuename,
> "Interface", member->interface,
> "MemberName", member->membername);
> queue_publish_multi_channel_blob(qe->chan, peer,
> queue_agent_dump_type(), blob);
> ast_channel_publish_dial(qe->chan, peer, member->interface,
> ast_hangup_cause_to_dial_status(ast_channel_hangupcause(peer)));
> ast_autoservice_chan_hangup_peer(qe->chan, peer);
> ao2_ref(member, -1);
> goto out;
> } else if (ast_check_hangup(qe->chan)) {
> {noformat}
> Then, issue does not happen.
> Please take a look at them and tell us the correct way to solve this issue.
> Thank you.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list