Commit Graph

555 Commits

Author SHA1 Message Date
Richard Mudgett
5413ea1c8c Document CHANNEL(keypad_digits) and CHANNEL(no_media_path).
* Added XML documentation for CHANNEL(keypad_digits) and
CHANNEL(no_media_path).

* Tweaked XML documentation for CHANNEL(reversecharge).


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@309170 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-03-01 21:57:26 +00:00
Tilghman Lesher
f14ba8fa19 Merged revisions 308990 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r308990 | tilghman | 2011-02-28 03:32:22 -0600 (Mon, 28 Feb 2011) | 7 lines
  
  Statements updating zero rows may return SQL_NO_DATA.  This is fine; it's handled.
  
  (closes issue #18815)
   Reported by: irroot
   Patches: 
         func_odbc.insert_nodata.patch uploaded by irroot (license 52)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@308991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-28 09:33:22 +00:00
Tilghman Lesher
bff7dd69e0 Merged revisions 307836 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r307836 | tilghman | 2011-02-15 01:01:37 -0600 (Tue, 15 Feb 2011) | 8 lines
  
  Need to retrieve the rows affected before using the associated variable.
  
  (closes issue #18795)
   Reported by: irroot
   Patches: 
         20110211__issue18795.diff.txt uploaded by tilghman (license 14)
   Tested by: tilghman
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@307837 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-15 07:02:45 +00:00
Tilghman Lesher
70edcdef43 Eliminate a file descriptor leak when using the FILE() dialplan function.
(closes issue #18731)
Reported by: marioabajo


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@305844 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-02 20:05:43 +00:00
Andrew Latham
69e83f1a72 Replacing doc/* and asterisk.pdf with wiki links
Adding links to http(s)://wiki.asterisk.org



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@305838 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-02-02 19:27:19 +00:00
Andrew Latham
b7d7fc94c2 Add Function and Application Relationships to documentation
Add and extend the see-also sections to the documentation for applications
and functions in an effort to expand the online documentation of the wiki.
Also check for and update any links to moved documentation in the doc folder.


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@304908 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-30 00:11:56 +00:00
Andrew Latham
6c43f3925b Add relationships to function documentation.
Fix amatuer type mistake 


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301849 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-14 20:05:08 +00:00
Andrew Latham
1490caf3f0 Add relationships to function documentation.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@301844 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-01-14 19:35:20 +00:00
Tilghman Lesher
66f8326ee1 Merged revisions 298477 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r298477 | tilghman | 2010-12-16 02:54:23 -0600 (Thu, 16 Dec 2010) | 8 lines
  
  Eliminate duplicates from container.
  
  (closes issue #18091)
   Reported by: bunny
   Patches: 
         20101006__issue18091.diff.txt uploaded by tilghman (license 14)
   Tested by: bunny
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@298478 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-12-16 08:56:13 +00:00
Tilghman Lesher
ab199924ac Merged revisions 294988 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r294988 | tilghman | 2010-11-15 01:42:39 -0600 (Mon, 15 Nov 2010) | 8 lines
  
  It is possible to crash Asterisk by feeding the curl engine invalid data.
  
  (closes issue #18161)
   Reported by: wdoekes
   Patches: 
         20101029__issue18161.diff.txt uploaded by tilghman (license 14)
   Tested by: tilghman
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@294989 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-15 07:44:38 +00:00
Jeff Peeler
971db9fc4e Merged revisions 293158 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r293158 | jpeeler | 2010-10-28 11:09:40 -0500 (Thu, 28 Oct 2010) | 11 lines
  
  Fix infinite loop in FILTER(). 
  
  Specifically when you're using characters above \x7f or invalid character
  escapes (e.g. \xgg).
  
  (closes issue #18060)
  Reported by: wdoekes
  Patches: 
        issue18060_func_strings_filter_infinite_loop.patch uploaded by wdoekes (license 717)
  Tested by: wdoekes
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@293159 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-28 16:11:08 +00:00
Tilghman Lesher
32d3205f0e Solaris fixes.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@289581 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-30 20:23:10 +00:00
Tilghman Lesher
92badf5e9b Merged revisions 288712 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r288712 | tilghman | 2010-09-24 08:53:30 -0500 (Fri, 24 Sep 2010) | 5 lines
  
  Solaris won't printf a NULL.
  
  (closes issue #18041)
   Reported by: asgaroth
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@288713 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-24 13:54:17 +00:00
David Vossel
ecabd15422 Addition of the FrameHook API (AKA AwesomeHooks)
So far all our tools for viewing and manipulating media streams
within Asterisk have been entirely focused on audio.  That made
sense then, but is not scalable now.  The FrameHook API lets us
tap into and manipulate _ANY_ type of media or signaling passed
on a channel present today or in the future.  This tool is a step
in the direction of expanding Asterisk's boundaries and will help
generate some rather interesting applications in the future.

In addition to the FrameHook API, a simple dialplan function
exercising the api has been included as well.  This function
is called FRAME_TRACE().  FRAME_TRACE() allows for the internal
ast_frames read and written to a channel to be output.  Filters
can be placed on this function to debug only certain types of frames.
This function could be thought of as an internal way of doing
ast_frame packet captures.

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@287647 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-20 22:09:16 +00:00
Terry Wilson
e72b55f3cf Merged revisions 286115 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r286115 | twilson | 2010-09-10 15:35:25 -0500 (Fri, 10 Sep 2010) | 23 lines
  
  Merged revisions 286059 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r286059 | twilson | 2010-09-10 14:25:08 -0500 (Fri, 10 Sep 2010) | 16 lines
    
    Inherit CHANNEL() writes to both sides of a Local channel
    
    Having Local (/n) channels as queue members and setting the language in the
    extension with Set(CHANNEL(language)=fr) sets the language on the Local/...,2
    channel. Hold time report playbacks happen on the Local/...,1 channel and
    therefor do not play in the specified language.
    
    This patch modifies func_channel_write to call the setoption callback and pass
    the CHANNEL() write info to the callback. chan_local uses this information to
    look up the other side of the channel and apply the same changes to it.
    
    (closes issue #17673)
    Reported by: Guggemand
    
    Review: https://reviewboard.asterisk.org/r/903/
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@286189 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-10 22:04:53 +00:00
Tilghman Lesher
4be40d5cab Documentation only
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@285484 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-08 07:14:17 +00:00
Tilghman Lesher
dbe6dde6da Add CHANNEL(checkhangup) to check whether a channel is in the process of being hanged up.
(closes issue #17652)
 Reported by: kobaz
 Patches: 
       func_channel.patch uploaded by kobaz (license 834)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@285373 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-07 21:14:03 +00:00
Tilghman Lesher
7e3f95e00a When optional_api is non-optional, force dependent modules to be loaded.
(closes issue #17707)
 Reported by: ira
 Patches: 
       20100819__issue17707__asterisk1.8.diff.txt uploaded by tilghman (license 14)
 Tested by: tilghman
 
Review: https://reviewboard.asterisk.org/r/876/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@284610 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-02 05:20:59 +00:00
Russell Bryant
9d1909c9b4 Don't attempt to release a NULL ODBC handle.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@283350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-08-24 12:49:41 +00:00
Tilghman Lesher
a5b7f2ce04 Sneak FIELDNUM() into 1.8. Returns a 1-based index into a list of a specified item.
Matches up with FIELDQTY() and CUT().

(closes issue #17713)
 Reported by: gareth
 Patches: 
       svn-279754.diff uploaded by gareth (license 208)
 Tested by: gareth, tilghman

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@280809 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-08-03 20:25:10 +00:00
Terry Wilson
d6e1c724e5 Remove built-in AES code and use optional_api instead
Review: https://reviewboard.asterisk.org/r/793/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@278538 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-21 19:11:32 +00:00
Tilghman Lesher
b4e18d5660 Add load priority order, such that preload becomes unnecessary in most cases
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@278132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-20 19:35:02 +00:00
Richard Mudgett
cf7bbcc4c6 Expand the caller ANI field to an ast_party_id
Expand the ani field in ast_party_caller and ast_party_connected_line to
an ast_party_id.

This is an extension to the ast_callerid restructuring patch in review:
https://reviewboard.asterisk.org/r/702/

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276393 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-14 16:58:03 +00:00
Richard Mudgett
ec37ffbdaf ast_callerid restructuring
The purpose of this patch is to eliminate struct ast_callerid since it has
turned into a miscellaneous collection of various party information.

Eliminate struct ast_callerid and replace it with the following struct
organization:

struct ast_party_name {
	char *str;
	int char_set;
	int presentation;
	unsigned char valid;
};
struct ast_party_number {
	char *str;
	int plan;
	int presentation;
	unsigned char valid;
};
struct ast_party_subaddress {
	char *str;
	int type;
	unsigned char odd_even_indicator;
	unsigned char valid;
};
struct ast_party_id {
	struct ast_party_name name;
	struct ast_party_number number;
	struct ast_party_subaddress subaddress;
	char *tag;
};
struct ast_party_dialed {
	struct {
		char *str;
		int plan;
	} number;
	struct ast_party_subaddress subaddress;
	int transit_network_select;
};
struct ast_party_caller {
	struct ast_party_id id;
	char *ani;
	int ani2;
};

The new organization adds some new information as well.

* The party name and number now have their own presentation value that can
be manipulated independently.  ISDN supplies the presentation value for
the name and number at different times with the possibility that they
could be different.

* The party name and number now have a valid flag.  Before this change the
name or number string could be empty if the presentation were restricted.
Most channel drivers assume that the name or number is then simply not
available instead of indicating that the name or number was restricted.

* The party name now has a character set value.  SIP and Q.SIG have the
ability to indicate what character set a name string is using so it could
be presented properly.

* The dialed party now has a numbering plan value that could be useful to
have available.

The various channel drivers will need to be updated to support the new
core features as needed.  They have simply been converted to supply
current functionality at this time.


The following items of note were either corrected or enhanced:

* The CONNECTEDLINE() and REDIRECTING() dialplan functions were
consolidated into func_callerid.c to share party id handling code.

* CALLERPRES() is now deprecated because the name and number have their
own presentation values.

* Fixed app_alarmreceiver.c write_metadata().  The workstring[] could
contain garbage.  It also can only contain the caller id number so using
ast_callerid_parse() on it is silly.  There was also a typo in the
CALLERNAME if test.

* Fixed app_rpt.c using ast_callerid_parse() on the channel's caller id
number string.  ast_callerid_parse() alters the given buffer which in this
case is the channel's caller id number string.  Then using
ast_shrink_phone_number() could alter it even more.

* Fixed caller ID name and number memory leak in chan_usbradio.c.

* Fixed uninitialized char arrays cid_num[] and cid_name[] in
sig_analog.c.

* Protected access to a caller channel with lock in chan_sip.c.

* Clarified intent of code in app_meetme.c sla_ring_station() and
dial_trunk().  Also made save all caller ID data instead of just the name
and number strings.

* Simplified cdr.c set_one_cid().  It hand coded the ast_callerid_merge()
function.

* Corrected some weirdness with app_privacy.c's use of caller
presentation.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-14 15:48:36 +00:00
Tilghman Lesher
0ae9097e3e Oops, XML documentation fix.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276122 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-13 19:05:17 +00:00
Tilghman Lesher
fc9efc4ff5 It really cannot fail in the places below, but the stupid compiler doesn't know that.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276120 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-13 19:00:02 +00:00
Tilghman Lesher
e939dfea9d Weird compiler error on Bamboo.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276118 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-13 18:41:59 +00:00
Tilghman Lesher
50d5f134c8 FILE() now supports line-mode and writing (altering) files.
(closes issue #16461)
 Reported by: skyman
 Patches: 
       20100622__issue16461.diff.txt uploaded by tilghman (license 14)
 Tested by: tilghman
 
Review: https://reviewboard.asterisk.org/r/737/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-13 18:31:41 +00:00
Tilghman Lesher
da8450323f Kill some startup warnings and errors and make some messages more helpful in tracking down the source.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@275105 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-09 17:00:22 +00:00
Bradley Latus
4405813297 Add High Resolution Times to CDRs for Asterisk
People expressed an interest in having access to the exact length of calls to a finer degree than seconds. See the CHANGES and UPGRADE.txt for usage also updated the sample configs to note the change.

Patch by snuffy.

(closes issue #16559)
Reported by: cianmaher
Tested by: cianmaher, snuffy

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@269153 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-08 23:48:17 +00:00
Terry Wilson
857814f435 Add SRTP support for Asterisk
After 5 years in mantis and over a year on reviewboard, SRTP support is finally
being comitted. This includes generic CHANNEL dialplan functions that work for
getting the status of whether a call has secure media or signaling as defined
by the underlying channel technology and for setting whether or not a new
channel being bridged to a calling channel should have secure signaling or
media. See doc/tex/secure-calls.tex for examples.

Original patch by mikma, updated for trunk and revised by me.

(closes issue #5413)
Reported by: mikma
Tested by: twilson, notthematrix, hemanshurpatel

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268894 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-08 05:29:08 +00:00
Tilghman Lesher
da0138932e Handle OOM errors more gracefully.
(closes issue #17084)
 Reported by: falves11
 Patches: 
       issue17084_162_A.diff uploaded by falves11 (license 374)
 Tested by: falves11


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@267669 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-03 19:46:42 +00:00
Tilghman Lesher
4eaea01cad Needs to be wrapped in <para>
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@266522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-30 20:18:03 +00:00
Tilghman Lesher
2da88f1977 Setup environment variables for the benefit of child processes and disallow changing them.
(closes issue #14899)
 Reported by: jmls
 Patches: 
       20090916__issue14899.diff.txt uploaded by tilghman (license 14)
 Tested by: jmls


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@266385 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-28 22:50:06 +00:00
Mark Michelson
b5d5cc565f Enhancements to connected line and redirecting work.
From reviewboard:

Digium has a commercial customer who has made extensive use of the connected party and
redirecting information present in later versions of Asterisk Business Edition and which
is to be in the upcoming 1.8 release. Through their use of the feature, new problems and solutions
have come about. This patch adds several enhancements to maximize usage of the connected party
and redirecting information functionality.

First, Asterisk trunk already had connected line interception macros. These macros allow you to
manipulate connected line information before it was sent out to its target. This patch adds the
same feature except for redirecting information instead.

Second, the ast_callerid and ast_party_id structures have been enhanced to provide a "tag." This
tag can be set with func_callerid, func_connectedline, func_redirecting, and in the case of DAHDI,
mISDN, and SIP channels, can be set in a configuration file. The idea behind the callerid tag is
that it can be set to whatever value the administrator likes. Later, when running connected line
and redirecting macros, the admin can read the tag off the appropriate structure to determine what
action to take. You can think of this sort of like a channel variable, except that instead of having
the variable associated with a channel, the variable is associated with a specific identity within
Asterisk.

Third, app_dial has two new options, s and u. The s option lets a dialplan writer force a specific
caller ID tag to be placed on the outgoing channel. The u option allows the dialplan writer to force
a specific calling presentation value on the outgoing channel.

Fourth, there is a new control frame subclass called AST_CONTROL_READ_ACTION added. This was added
to correct a very specific situation. In the case of SIP semi-attended (blond) transfers, the party
being transferred would not have the opportunity to run a connected line interception macro to
possibly alter the transfer target's connected line information. The issue here was that during a
blond transfer, the SIP transfer code has no bridged channel on which to queue the connected line
update. The way this was corrected was to add this new control frame subclass. Now, we queue an
AST_CONTROL_READ_ACTION frame on the channel on which the connected line interception macro should
be run. When ast_read is called to read the frame, ast_read responds by calling a callback function
associated with the specific read action the control frame describes. In this case, the action taken
is to run the connected line interception macro on the transferee's channel.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@263541 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-17 15:36:31 +00:00
Tilghman Lesher
03e1608c29 Double free crash
(closes issue #17245)
 Reported by: thedavidfactor
 Patches: 
       20100426__issue17245.diff.txt uploaded by tilghman (license 14)
 Tested by: murraytm


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@261917 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-05-07 20:54:35 +00:00
Mark Michelson
693d1c44b1 Add small documentation update to func_callcompletion.c.
This directs users to documents which can help explain the
concepts and configuration options settable with the function.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@258345 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-21 19:07:25 +00:00
Mark Michelson
6640f309a9 Commit compromise I suggested on review 608.
This allows for multiple SRV queries to be done
from the dialplan for the same service on a single call while
still allowing one to bypass the call to SRVQUERY if they so
please.

Taking action since no comments had been left for a while.
This can easily be reverted if needed. External tests
still pass.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@257851 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-19 18:42:31 +00:00
Mark Michelson
fb0a4e5bd0 Address Russell's comments on func_srv from reviewboard.
* Change copyright date
* Place channel in autoservice when doing SRV lookup
* Get rid of trailing whitespace
* Change logic in load_module function



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@257025 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-13 16:15:36 +00:00
Mark Michelson
ae7b76a1b9 Fix some compiler errors that popped up after the CCSS merge.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@256529 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-09 15:56:55 +00:00
Mark Michelson
e24661fd18 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: https://origsvn.digium.com/svn/asterisk/trunk@256528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-09 15:31:32 +00:00
Mark Michelson
6cad0f1602 func_srv and explicit specification of a remote IP for SIP.
From Review Board:
There are two interrelated changes here.

First, there is the introduction of func_srv. This adds two new read-only
dialplan functions, SRVQUERY and SRVRESULT. They work very similarly to the
ENUMQUERY and ENUMRESULT functions, except that this allows one to query SRV
records instead. In order to facilitate this work, I added a couple of new API
calls to srv.h. ast_srv_get_record_count tells the number of records returned
by an SRV lookup. This number is calculated at the time of the SRV lookup.
ast_srv_get_nth_record allows one to get a numbered SRV record.

Second, there is the modification to chan_sip that allows one to specify a
hostname or IP address (along with a port) to send an outgoing INVITE to when
dialing a SIP peer. This goes hand-in-hand with func_srv. You can query SRV
records and then use the host and port from the results to dial via a specific
host instead of what is configured in sip.conf.

Review: https://reviewboard.asterisk.org/r/608
SWP-1200



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@256485 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-09 14:37:50 +00:00
Richard Mudgett
a5a0a5f867 Consolidate ast_channel.cid.cid_rdnis into ast_channel.redirecting.from.number.
SWP-1229
ABE-2161

* Ensure chan_local.c:local_call() will not leak cid.cid_dnid when
copying.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@256104 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-04-03 02:12:33 +00:00
Russell Bryant
008930a3f2 Fix memory corruption found by unit tests.
ast_str_reset() was being called on a potentially uninitialized pointer.
Valgrind is my hero, once again.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@253579 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-20 16:50:38 +00:00
Tilghman Lesher
afb6bac829 Hmmm, apparently needed to be fixed in trunk, too.
(closes issue #16900)
 Reported by: bluecrow76
 Patches: 
       asterisk-1.6.2.4-func_strings.diff uploaded by bluecrow76 (license 270)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@251682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-10 20:54:03 +00:00
Tilghman Lesher
dd3176cc91 It's amazing what writing a test will find.
(issue #16900)
 Reported by: bluecrow76


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@251677 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-10 20:30:34 +00:00
Tilghman Lesher
e58fc610ae Change needed to make Mac OS X 10.6 happy
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@251262 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-08 05:12:55 +00:00
David Vossel
86a215c83e fixes xml error in func_pitchshift
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@251087 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-05 21:51:25 +00:00
David Vossel
f468595789 PITCH_SHIFT dialplan function
The PITCH_SHIFT function can be used on a channel to independently
modify the pitch of both rx and tx audio streams.  Now you can
improve your conference calls by assigning a random pitch effect
to everyone entering a meetme room, or just make your day more
interesting by making your co-workers sound funny.  These are just
some of the numerious practical uses for this function. Enjoy!

https://reviewboard.asterisk.org/r/526/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@251038 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-05 20:21:13 +00:00
Mark Michelson
7acfebf2b8 Adjust XML for func_channel to indicate that rtpdest can take a "text" argument.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@250730 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-04 20:12:26 +00:00