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
mmichelson 0eb1e5407a Merge Call completion support into trunk.
From Reviewboard:
CCSS stands for Call Completion Supplementary Services. An admittedly out-of-date
overview of the architecture can be found in the file doc/CCSS_architecture.pdf
in the CCSS branch. Off the top of my head, the big differences between what is
implemented and what is in the document are as follows:

1. We did not end up modifying the Hangup application at all.
2. The document states that a single call completion monitor may be used across
   multiple calls to the same device. This proved to not be such a good idea
   when implementing protocol-specific monitors, and so we ended up using one
   monitor per-device per-call.
3. There are some configuration options which were conceived after the document
   was written. These are documented in the ccss.conf.sample that is on this
   review request.
		      
For some basic understanding of terminology used throughout this code, see the
ccss.tex document that is on this review.

This implements CCBS and CCNR in several flavors.

First up is a "generic" implementation, which can work over any channel technology
provided that the channel technology can accurately report device state. Call
completion is requested using the dialplan application CallCompletionRequest and can
be canceled using CallCompletionCancel. Device state subscriptions are used in order
to monitor the state of called parties.

Next, there is a SIP-specific implementation of call completion. This method uses the
methods outlined in draft-ietf-bliss-call-completion-06 to implement call completion
using SIP signaling. There are a few things to note here:

* The agent/monitor terminology used throughout Asterisk sometimes is the reverse of
  what is defined in the referenced draft.

* Implementation of the draft required support for SIP PUBLISH. I attempted to write
  this in a generic-enough fashion such that if someone were to want to write PUBLISH
  support for other event packages, such as dialog-state or presence, most of the effort
  would be in writing callbacks specific to the event package.

* A subportion of supporting PUBLISH reception was that we had to implement a PIDF
  parser. The PIDF support added is a bit minimal. I first wrote a validation
  routine to ensure that the PIDF document is formatted properly. The rest of the
  PIDF reading is done in-line in the call-completion-specific PUBLISH-handling
  code. In other words, while there is PIDF support here, it is not in any state
  where it could easily be applied to other event packages as is.

Finally, there are a variety of ISDN-related call completion protocols supported. These
were written by Richard Mudgett, and as such I can't really say much about their
implementation. There are notes in the CHANGES file that indicate the ISDN protocols
over which call completion is supported.

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


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@256528 f38db490-d61c-443f-a65b-d21fe96a405b
2010-04-09 15:31:32 +00:00
..
db1-ast Merged revisions 209879 via svnmerge from 2009-08-01 11:29:25 +00:00
editline One more fix to editline 2010-03-03 16:43:10 +00:00
stdtime Resolve more compiler warnings on FreeBSD. 2010-03-20 12:03:07 +00:00
Makefile Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +00:00
abstract_jb.c Fix jitterbuffer logging not creating logfiles. 2010-03-10 18:25:18 +00:00
acl.c Fix incorrect ACL behavior when CIDR notation of "/0" is used. 2010-02-25 22:41:48 +00:00
adsistub.c remove a bunch of useless #include "options.h" 2007-11-21 23:09:02 +00:00
aescrypt.c Spacing changes only 2009-03-04 20:48:42 +00:00
aeskey.c use the OpenSSL AES implementation if it's available (unless configured not to) 2007-05-24 22:07:50 +00:00
aesopt.h merge new_loader_completion branch, including (at least): 2006-08-21 02:11:39 +00:00
aestab.c use the OpenSSL AES implementation if it's available (unless configured not to) 2007-05-24 22:07:50 +00:00
alaw.c Fix compile when certain G711 menuselect options are enabled. 2009-08-19 22:38:46 +00:00
app.c Resolve unit test failure that occurred on Mac OSX. 2010-03-13 22:21:18 +00:00
ast_expr2.c Allow "REMAINDER" to function properly in expressions. 2009-12-28 22:09:40 +00:00
ast_expr2.fl Merged revisions 245496 via svnmerge from 2010-02-08 20:41:05 +00:00
ast_expr2.h Merged revisions 179807 via svnmerge from 2009-03-03 22:12:02 +00:00
ast_expr2.y Allow "REMAINDER" to function properly in expressions. 2009-12-28 22:09:40 +00:00
ast_expr2f.c Merged revisions 245496 via svnmerge from 2010-02-08 20:41:05 +00:00
asterisk.c Merge Call completion support into trunk. 2010-04-09 15:31:32 +00:00
asterisk.dynamics Export dynamic (weak-linked) symbols correctly. 2009-11-30 16:53:10 +00:00
asterisk.exports.in Allow symbol export filtering to work properly on platforms that have symbol prefixes. 2010-04-02 18:57:58 +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 prevent segfault if bad magic number is encountered. 2010-03-19 07:37:00 +00:00
audiohook.c fixes AUDIOHOOK_INHERIT regression 2010-01-08 19:39:30 +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 Expand codec bitfield from 32 bits to 64 bits. 2009-11-04 14:05:12 +00:00
bridging.c Expand codec bitfield from 32 bits to 64 bits. 2009-11-04 14:05:12 +00:00
buildinfo.c fix a few small things found by using sparse 2008-10-30 16:49:02 +00:00
callerid.c More 32->64 bit codec conversions. 2009-12-01 20:27:37 +00:00
ccss.c Merge Call completion support into trunk. 2010-04-09 15:31:32 +00:00
cdr.c Trim trailing whitespace (to help reduce diff against cdr-q branch) 2010-02-26 08:35:42 +00:00
cel.c Consolidate ast_channel.cid.cid_rdnis into ast_channel.redirecting.from.number. 2010-04-03 02:12:33 +00:00
channel.c Merge Call completion support into trunk. 2010-04-09 15:31:32 +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 Change per-file debug and verbose levels to be per-module, the way 2010-03-23 14:22:27 +00:00
config.c Merged revisions 241015 via svnmerge from 2010-01-18 19:57:52 +00:00
cryptostub.c Don't include logger.h in asterisk.h by default as it is causing problems building 2008-10-10 00:42:13 +00:00
cygload.c Doxygen updates, formatting. 2007-12-11 22:20:22 +00:00
datastore.c Properly account for memory allocated for channels and datastores 2009-05-05 10:34:19 +00:00
db.c More 'static' qualifiers on module global variables. 2009-06-15 17:34:30 +00:00
devicestate.c Merged revisions 205409 via svnmerge from 2009-07-08 22:15:06 +00:00
dial.c Consolidate ast_channel.cid.cid_rdnis into ast_channel.redirecting.from.number. 2010-04-03 02:12:33 +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 AST-2009-005 2009-08-10 19:20:57 +00:00
dsp.c restarts busydetector (if enabled) when DTMF is received after call is bridged. 2009-12-20 08:22:35 +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 Remove a debugging log entry. 2010-03-29 05:10:41 +00:00
features.c Merged revisions 253799 via svnmerge from 2010-03-22 19:52:52 +00:00
file.c Merged revisions 254451 via svnmerge from 2010-03-25 16:03:51 +00:00
fixedjitterbuf.c Start untangling header inclusion in a way that does not affect 2007-11-16 20:04:58 +00:00
fixedjitterbuf.h Merged revisions 135841,135847,135850 via svnmerge from 2008-08-06 00:30:53 +00:00
frame.c Fix crash resulting from frames with invalid data pointers. 2010-01-26 18:07:57 +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 Merged revisions 172517 via svnmerge from 2009-01-30 21:29:12 +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 Pass more useful information through to lock tracking when DEBUG_THREADS is on. 2009-03-27 01:35:56 +00:00
http.c Don't act like an http write failed when it didn't 2010-03-23 16:52:53 +00:00
image.c More 'static' qualifiers on module global variables. 2009-06-15 17:34:30 +00:00
indications.c Expand codec bitfield from 32 bits to 64 bits. 2009-11-04 14:05:12 +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 RTP documentation states that you can pass NULL as the module, so make sure that's really the case. 2010-02-17 07:01:13 +00:00
logger.c Merged revisions 248582 via svnmerge from 2010-02-24 21:17:26 +00:00
manager.c Merge Call completion support into trunk. 2010-04-09 15:31:32 +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 fixes an ast_netsock_list memory leak. 2009-10-08 19:35:30 +00:00
pbx.c Fix potential invalid reads that could occur in pbx.c 2010-03-24 21:10:38 +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 MAX() moved to utils.h 2010-01-13 10:45:19 +00:00
privacy.c remove a bunch of useless #include "options.h" 2007-11-21 23:09:02 +00:00
rtp_engine.c Only change the RTP ssrc when we see that it has changed 2010-03-12 22:04:51 +00:00
say.c Merged revisions 237573 via svnmerge from 2010-01-04 21:48:20 +00:00
sched.c Initialize counters in ast_sched_report so that resulting data is not bogus. 2010-02-03 19:26:53 +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 Expand codec bitfield from 32 bits to 64 bits. 2009-11-04 14:05:12 +00:00
srv.c func_srv and explicit specification of a remote IP for SIP. 2010-04-09 14:37:50 +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 Move implementation of closefrom(3) from app.c to strcompat.c 2009-12-06 07:01:06 +00:00
strings.c Fix two problems in ast_str functions found while writing a unit test. 2010-02-17 21:22:40 +00:00
stun.c This commit introduces COLP/CONP and Redirecting party information into Asterisk. 2009-04-03 22:41:46 +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 Minor tweaks to comment blocks and includes. 2010-02-22 06:45:52 +00:00
tcptls.c Resolve more compiler warnings on FreeBSD. 2010-03-20 12:03:07 +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 248582 via svnmerge from 2010-02-24 21:17:26 +00:00
test.c Put test output for a failure in a CDATA section in the XML results. 2010-03-23 22:35:56 +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 Extend max call limit duration from 24.8 days to 292+ million years. 2010-01-18 22:31:25 +00:00
translate.c Using the builtin function breaks OpenBSD 4.2 2009-12-04 21:06:22 +00:00
udptl.c fixes crash during T.38 negotiation caused by invalid or missing FaxMaxDatagram field 2010-02-02 22:27:23 +00:00
ulaw.c Fix compile when certain G711 menuselect options are enabled. 2009-08-19 22:38:46 +00:00
utils.c Add new unit test for stringfields. 2010-03-10 23:15:55 +00:00
xml.c Merge Call completion support into trunk. 2010-04-09 15:31:32 +00:00
xmldoc.c Fix a typo. 2010-03-17 00:40:51 +00:00