Review Board 1.7.16


app_queue: support a 'logged in and available' hint on queue

Review Request #2121 - Created Sept. 18, 2012 and submitted

Alec Davis
trunk
Reviewers
asterisk-dev
Asterisk
Receptionist will love this.

The ability to see via a BLF that some members are logged in and free to take the calls. "I'll just put you through now", with less chance that the call goes to voicemail or what ever dialplan logic then followed.


When all agents are logged out, the BLF goes INUSE.
When agents are logged in, but are all busy, the BLF goes INUSE.
   Like any BLF, if INUSE the call may go to Voicemail, at least the Operator can warn the caller.

When an agent is free to take a call the BLF goes NOT_IN_USE, IE. can put a call through.
 


Related to https://reviewboard.asterisk.org/r/1619/

I did think about combining the queue ringing hint from review 1619 but it's a different function, and only required by co-workers that may be able to help.

Many other divisions want to be able to drop a call into a queue, with the prior knowledge that it should be answered (NOTINUSE), or will possibly go to voicemail (INUSE).
In use on our headoffice production system.

Below is a hint for our itg_queue

exten => 8501,hint,Queue:itg_queue_avail

Note: '_avail' is added to the queuename

Changes between revision 1 and 2

1 2 3
1 2 3

  1. trunk/apps/app_queue.c: Loading...
trunk/apps/app_queue.c
Diff Revision 1 Diff Revision 2
This file contains only whitespace changes.
[20] 1693 lines
[+20] [+] static int handle_statechange(void *datap)
1694

    
   
1694

   
1695
		}
1695
		}
1696
		if (found_member) {
1696
		if (found_member) {
1697
			found = 1;
1697
			found = 1;
1698
			if (avail) {
1698
			if (avail) {
1699
				ast_devstate_changed(AST_DEVICE_NOT_INUSE, "Queue:%s_avail", q->name);		
1699
				ast_devstate_changed(AST_DEVICE_NOT_INUSE, "Queue:%s_avail", q->name);
1700
			} else {
1700
			} else {
1701
				ast_devstate_changed(AST_DEVICE_INUSE, "Queue:%s_avail", q->name);		
1701
				ast_devstate_changed(AST_DEVICE_INUSE, "Queue:%s_avail", q->name);
1702
			}
1702
			}
1703
		}
1703
		}
1704

    
   
1704

   
1705
		ao2_iterator_destroy(&miter);
1705
		ao2_iterator_destroy(&miter);
1706

    
   
1706

   
[+20] [20] 4166 lines
[+20] [+] static int remove_from_queue(const char *queuename, const char *interface)
5873
			}
5873
			}
5874

    
   
5874

   
5875
			if (!ao2_container_count(q->members)) {
5875
			if (!ao2_container_count(q->members)) {
5876
				ast_devstate_changed(AST_DEVICE_INUSE, "Queue:%s_avail", q->name);
5876
				ast_devstate_changed(AST_DEVICE_INUSE, "Queue:%s_avail", q->name);
5877
			}
5877
			}
5878
			
5878

   
5879
			res = RES_OKAY;
5879
			res = RES_OKAY;
5880
		} else {
5880
		} else {
5881
			res = RES_EXISTS;
5881
			res = RES_EXISTS;
5882
		}
5882
		}
5883
		ao2_unlock(q);
5883
		ao2_unlock(q);
[+20] [20] 3862 lines
  1. trunk/apps/app_queue.c: Loading...

https://reviewboard.asterisk.org/ runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to asteriskteam@digium.com.