dect
/
asterisk
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asterisk/main
rmudgett 6f2f7af100 Add Device State Information CCSS for Generic Devices.
Add Asterisk Device State information and callbacks to the Call Completion
Supplemental Services for generic agents.

There are currently not many devices that have native support for CCSS.
Even as the devices become available there may be other reasons why one
may choose to not take advantage of the native abilities and stick with
the generic implementation.  The generic implementation is quite capable
and could be greatly enhanced by adding device state capabilities.  A
phone could then subscribe to the device state with a BLF key in
conjunction with Asterisk hints.

The advantages of the device state information would allow a single button
to: request CCSS, cancel a CCSS request, and display the current state of
a CCSS request.

For example, you may have a single button that when not lit, there is no
active CCSS request.  When you press that button, the dialplan can query
the DEVICE_STATE() associated with that caller to determine whether they
should be calling CallCompletionRequest() or CallCompletionCancel().  If
there is currently a pending request, then the dialplan would cancel it.
This also has the advantage of showing the true state of a request, which
is an asynchronous call, even when CallCompletionRequest() thinks it was
successful.  The actual request could ultimately fail.  Once lit, further
feedback can be provided to the caller about the current state of their
request since it will be updated by the CCSS State Machine as appropriate.

The DEVICE_STATE mapping is configurable since the BLF being used on a
given phone type may vary.  The idea is to allow some level of
customization as to the phone's behavior.

As an example, you may want the BLF key to go solid once you have
requested a callback.  You may then want the LED to blink (typically
ringing) when either the callback is in process, which is a visual
indication that the incoming call is the desired callback.  You may want
it to blink when the callee is ready but you are busy, giving you a visual
indication that the target is available as you may want to get off the
line so that the callback can be successful.

Device state information is sent back via the ast_devstate_prov_add()
callback for any generic CCSS device as it traverses through the state
machine.  You simply provide a map between CC_STATE values and the
corresponding AST_DEVICE state values.

You could then generate hints against these states similar to what is
possible today with Custom Devstates or MeetMe states.  For example, you
may have an extension 3000 that is currently associated with device
SIP/3000.  You could then create a feature code for that extension that
may look something like:

exten => *823000,hint,ccss:sip/3000

You would then subscribe a BLF button to *823000 which would point to the
dialplan that handled CCSS requests/cancels using the available
DEVICE_STATE() information about ccss:sip/3000 to make the decision about
what to do.

(closes issue #18788)
Reported by: p_lindheimer
Patches:
      ccss.trunk.18788.patch uploaded by p lindheimer (license 558)
      Modified with final reviewboard comments.
Tested by: p_lindheimer, loloski

Review: https://reviewboard.asterisk.org/r/1105/


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@313744 f38db490-d61c-443f-a65b-d21fe96a405b
2011-04-14 18:22:35 +00:00
..
db1-ast Merged revisions 209879 via svnmerge from 2009-08-01 11:29:25 +00:00
editline Add gar to the check for AR for those silly OSes (Solaris) that don't have ar. 2010-04-27 21:13:01 +00:00
stdtime Merged revisions 291791 via svnmerge from 2010-10-14 18:46:54 +00:00
Makefile Merged revisions 298960 via svnmerge from 2010-12-18 00:08:13 +00:00
abstract_jb.c Asterisk media architecture conversion - no more format bitfields 2011-02-03 16:22:10 +00:00
acl.c Merged revisions 304638 via svnmerge from 2011-01-28 20:19:57 +00:00
alaw.c Fix compile when certain G711 menuselect options are enabled. 2009-08-19 22:38:46 +00:00
aoc.c Typos: recieved => received 2010-12-20 09:14:45 +00:00
app.c Replace ast_log(LOG_DEBUG, ...) with ast_debug() 2011-02-04 16:55:39 +00:00
ast_expr2.c Merged revisions 293197 via svnmerge from 2010-10-28 20:01:28 +00:00
ast_expr2.fl Merged revisions 309808 via svnmerge from 2011-03-07 01:01:08 +00:00
ast_expr2.h Merged revisions 293197 via svnmerge from 2010-10-28 20:01:28 +00:00
ast_expr2.y Merged revisions 293197 via svnmerge from 2010-10-28 20:01:28 +00:00
ast_expr2f.c Merged revisions 309808 via svnmerge from 2011-03-07 01:01:08 +00:00
asterisk.c Merged revisions 312286,312288 via svnmerge from 2011-04-01 10:59:32 +00:00
asterisk.dynamics Remove the old stub files, preferring the optional_api method. 2010-07-14 20:48:59 +00:00
asterisk.exports.in Merged revisions 288640 via svnmerge from 2010-09-24 03:43:14 +00:00
astfd.c Merged revisions 228338 via svnmerge from 2009-11-06 15:42:46 +00:00
astmm.c Two more minor fixes due to constification 2009-05-22 16:53:41 +00:00
astobj2.c Merged revisions 307273 via svnmerge from 2011-02-09 21:08:22 +00:00
audiohook.c Fixes null reference bug introduced by audio hook changes that affects various OS distributions. Thanks David. 2011-03-14 13:12:51 +00:00
autochan.c Convert the ast_channel data structure over to the astobj2 framework. 2009-04-24 14:04:26 +00:00
autoservice.c Merged revisions 278167 via svnmerge from 2010-07-20 22:26:23 +00:00
bridging.c Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff 2011-02-22 23:04:49 +00:00
buildinfo.c fix a few small things found by using sparse 2008-10-30 16:49:02 +00:00
callerid.c Merged revisions 310636 via svnmerge from 2011-03-14 16:55:30 +00:00
ccss.c Add Device State Information CCSS for Generic Devices. 2011-04-14 18:22:35 +00:00
cdr.c Some scheduler API cleanup and improvements. 2010-12-20 17:15:54 +00:00
cel.c Merged revisions 283230 via svnmerge from 2010-08-23 13:23:37 +00:00
channel.c Merged revisions 313588 via svnmerge from 2011-04-13 16:37:06 +00:00
chanvars.c Add additional memory debugging to several core APIs, and fix several memory 2008-10-14 22:38:06 +00:00
cli.c Merged revisions 313366 via svnmerge from 2011-04-11 22:28:43 +00:00
config.c Replacing doc/* with wiki links 2011-02-02 18:59:29 +00:00
cygload.c Doxygen updates, formatting. 2007-12-11 22:20:22 +00:00
data.c Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff 2011-02-22 23:04:49 +00:00
datastore.c Merged revisions 273565 via svnmerge from 2010-07-01 22:16:23 +00:00
db.c Merged revisions 286112 via svnmerge from 2010-09-13 22:13:27 +00:00
devicestate.c Merged revisions 294501 via svnmerge from 2010-11-10 12:52:46 +00:00
dial.c Asterisk media architecture conversion - no more format bitfields 2011-02-03 16:22:10 +00:00
dns.c Fix a few compilation problems found when building Asterisk against uClibc. 2009-07-08 16:43:12 +00:00
dnsmgr.c Some scheduler API cleanup and improvements. 2010-12-20 17:15:54 +00:00
dsp.c New Feature for chan_dahdi. 4 length pattern matching. 2011-04-01 17:01:01 +00:00
ecdisa.h merge new_loader_completion branch, including (at least): 2006-08-21 02:11:39 +00:00
enum.c Extend max call limit duration from 24.8 days to 292+ million years. 2010-01-18 22:31:25 +00:00
event.c Merged revisions 295711 via svnmerge from 2010-11-20 00:52:47 +00:00
features.c Merged revisions 313048 via svnmerge from 2011-04-07 13:42:13 +00:00
file.c Asterisk media architecture conversion - no more format bitfields 2011-02-03 16:22:10 +00:00
fixedjitterbuf.c Fix various typos reported by Lintian 2010-07-02 15:57:02 +00:00
fixedjitterbuf.h Merged revisions 135841,135847,135850 via svnmerge from 2008-08-06 00:30:53 +00:00
format.c Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff 2011-02-22 23:04:49 +00:00
format_cap.c Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff 2011-02-22 23:04:49 +00:00
format_pref.c Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff 2011-02-22 23:04:49 +00:00
frame.c Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff 2011-02-22 23:04:49 +00:00
framehook.c Merged revisions 287647 via svnmerge from 2010-09-20 22:16:37 +00:00
fskmodem.c (Step 2 of 2) 2008-07-21 21:00:47 +00:00
fskmodem_float.c Optionally build integer-based routines for FSK tone decoding (but default 2008-07-21 20:59:03 +00:00
fskmodem_int.c Optionally build integer-based routines for FSK tone decoding (but default 2008-07-21 20:59:03 +00:00
global_datastores.c Add SRTP support for Asterisk 2010-06-08 05:29:08 +00:00
hashtab.c Add MALLOC_DEBUG to various utility APIs, so that memory leaks can be tracked back to their source. 2009-03-11 00:29:59 +00:00
heap.c Merged revisions 304950 via svnmerge from 2011-01-31 06:50:49 +00:00
http.c Merged revisions 309204 via svnmerge from 2011-03-01 22:26:37 +00:00
image.c Asterisk media architecture conversion - no more format bitfields 2011-02-03 16:22:10 +00:00
indications.c Asterisk media architecture conversion - no more format bitfields 2011-02-03 16:22:10 +00:00
io.c Merged revisions 182810 via svnmerge from 2009-03-18 02:28:55 +00:00
jitterbuf.c Merged revisions 174583 via svnmerge from 2009-02-10 18:16:31 +00:00
loader.c clarify warning when no loadable module support 2011-02-09 19:17:01 +00:00
lock.c Merged revisions 307142 via svnmerge from 2011-02-09 05:53:29 +00:00
logger.c Merged revisions 307092 via svnmerge from 2011-02-08 21:24:57 +00:00
manager.c Merged revisions 312766 via svnmerge from 2011-04-05 14:16:21 +00:00
md5.c Start untangling header inclusion in a way that does not affect 2007-11-16 20:04:58 +00:00
netsock.c Merged revisions 298051 via svnmerge from 2010-12-10 16:28:14 +00:00
netsock2.c Merged revisions 304245 via svnmerge from 2011-01-26 20:44:47 +00:00
pbx.c fix a memory leak in device state 2011-02-21 13:58:18 +00:00
plc.c Start untangling header inclusion in a way that does not affect 2007-11-16 20:04:58 +00:00
poll.c Merged revisions 285268 via svnmerge from 2010-09-07 19:09:08 +00:00
privacy.c remove a bunch of useless #include "options.h" 2007-11-21 23:09:02 +00:00
rtp_engine.c Merged revisions 310287 via svnmerge from 2011-03-11 06:56:06 +00:00
say.c Replace ast_log(LOG_DEBUG, ...) with ast_debug() 2011-02-04 16:55:39 +00:00
sched.c Some scheduler API cleanup and improvements. 2010-12-20 17:15:54 +00:00
security_events.c Add an API for reporting security events, and a security event logging module. 2009-07-11 19:15:03 +00:00
sha1.c more header removal/normalization 2007-11-21 00:23:49 +00:00
slinfactory.c Media Project Phase2: SILK 8khz-24khz, SLINEAR 8khz-192khz, SPEEX 32khz, hd audio ConfBridge, and other stuff 2011-02-22 23:04:49 +00:00
srv.c Formatting changes 2010-07-16 13:32:22 +00:00
ssl.c pthread_self returns a pthread_t which is not an unsigned int on all 2009-07-09 08:31:24 +00:00
strcompat.c Merged revisions 301263 via svnmerge from 2011-01-10 22:40:23 +00:00
strings.c fixes segfault on logging 2010-05-18 22:48:51 +00:00
stun.c Merged revisions 284597 via svnmerge from 2010-09-02 05:02:54 +00:00
syslog.c Add functions to map syslog facilities and priorities constants to strings. 2009-06-26 13:00:35 +00:00
taskprocessor.c Replace ast_log(LOG_DEBUG, ...) with ast_debug() 2011-02-04 16:55:39 +00:00
tcptls.c Merged revisions 310999 via svnmerge from 2011-03-16 19:51:55 +00:00
tdd.c Merge changes from str_substitution that are unrelated to that branch. 2009-04-01 20:13:28 +00:00
term.c Merged revisions 269334 via svnmerge from 2010-06-09 17:32:52 +00:00
test.c Kill some startup warnings and errors and make some messages more helpful in tracking down the source. 2010-07-09 17:00:22 +00:00
threadstorage.c Fixed an issue in the threadstorage cli functions resulting from the constification of struct ast_cli_args in r196072. 2009-06-01 15:23:21 +00:00
timing.c Merged revisions 294278 via svnmerge from 2010-11-08 22:03:54 +00:00
translate.c Fix compiler warning. 2011-02-23 23:55:58 +00:00
udptl.c Merged revisions 308723 via svnmerge from 2011-02-24 15:10:58 +00:00
ulaw.c Fix compile when certain G711 menuselect options are enabled. 2009-08-19 22:38:46 +00:00
utils.c Merged revisions 310781 via svnmerge from 2011-03-15 01:36:26 +00:00
xml.c Asterisk data retrieval API. 2010-04-22 18:07:02 +00:00
xmldoc.c Replace ast_log(LOG_DEBUG, ...) with ast_debug() 2011-02-04 16:55:39 +00:00