Commit Graph

172 Commits

Author SHA1 Message Date
Matthew Jordan
5996dd6a23 Prevent exhaustion of system resources through exploitation of event cache
Asterisk maintains an internal cache for devices in the event subsystem. The
device state cache holds the state of each device known to Asterisk, such that
consumers of device state information can query for the last known state for
a particular device, even if it is not part of an active call. The concept of
a device in Asterisk can include entities that do not have a physical
representation. One way that this occurred was when anonymous calls are allowed
in Asterisk. A device was automatically created and stored in the cache for
each anonymous call that occurred; this was possible in the SIP and IAX2
channel drivers and through channel drivers that utilized the
res_jabber/res_xmpp resource modules (Gtalk, Jingle, and Motif). These devices
are never removed from the system, allowing anonymous calls to potentially
exhaust a system's resources.

This patch changes the event cache subsystem and device state management to
no longer cache devices that are not associated with a physical entity.

(issue ASTERISK-20175)
Reported by: Russell Bryant, Leif Madsen, Joshua Colp
Tested by: kmoore
patches:
  event-cachability-3.diff uploaded by jcolp (license 5000)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378303 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-01-02 16:54:20 +00:00
Matthew Jordan
a73c5b80ff Resolve crashes due to large stack allocations when using TCP
Asterisk had several places where messages received over various network
transports may be copied in a single stack allocation. In the case of TCP,
since multiple packets in a stream may be concatenated together, this can
lead to large allocations that overflow the stack.

This patch modifies those portions of Asterisk using TCP to either
favor heap allocations or use an upper bound to ensure that the stack will not
overflow:
 * For SIP, the allocation now has an upper limit
 * For HTTP, the allocation is now a heap allocation instead of a stack
   allocation
 * For XMPP (in res_jabber), the allocation has been eliminated since it was
   unnecesary.

Note that the HTTP portion of this issue was independently found by Brandon
Edwards of Exodus Intelligence.

(issue ASTERISK-20658)
Reported by: wdoekes, Brandon Edwards
Tested by: mmichelson, wdoekes
patches:
  ASTERISK-20658_res_jabber.c.patch uploaded by mmichelson (license 5049)
  issueA20658_http_postvars_use_malloc2.patch uploaded by wdoekes (license 5674)
  issueA20658_limit_sip_packet_size3.patch uploaded by wdoekes (license 5674)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@378269 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-01-02 15:16:10 +00:00
Matthew Jordan
1664ec1c61 Check for presence of buddy in info/dinfo handlers
The res_jabber resource module uses the ASTOBJ library for managing its ref
counted objects.  After calling ASTOBJ_CONTAINER_FIND to locate a buddy object,
the pointer to the object has to be checked to see if the buddy existed.
Prior to this patch, the buddy object was not checked for NULL; with this patch
in both aji_client_info_handler and aji_dinfo_handler the pointer is checked
before used and, if no buddy object was found, the handlers return an error
code.

This patch does not take the approach that our JID can be used to log in from
another resource.  If that approach is desired, an improvement could be made to
this patch to create the buddy on the fly.  This patch seeks only to prevent
Asterisk from crashing.

Note that multiple people have proposed patches for this issue; the patch being
committed here is based on those.

(closes issue ASTERISK-19532)
Reported by: Karsten Wemheuer
Tested by: Byron Clark
patches:
  fix-jabber uploaded by Karsten Wemheuer (license #5930)
  xmpp_no_crash_with_ejabberd.patch uploaded by Byron Clark (license #6157)

(closes issue ASTERISK-19557)
Reported by: ulugutz



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@374335 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-10-04 02:09:43 +00:00
Jonathan Rose
e9f70dc149 res_jabber: Remove CLI command 'jabber test'
The opinion of development was that it is both improper to have Matt's
personal email address used in the source and that the command wouldn't
be useful without it.

(closes issue AST-467)
Reported by: Malcolm Davenport


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@374032 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-09-28 19:03:19 +00:00
Mark Michelson
3b476dfd1e Fix misuses of asprintf throughout the code.
This fixes three main issues

* Change asprintf() uses to ast_asprintf() so that it
pairs properly with ast_free() and no longer causes
MALLOC_DEBUG to freak out.

* When ast_asprintf() fails, set the pointer NULL if
it will be referenced later.

* Fix some memory leaks that were spotted while taking
care of the first two points.

(Closes issue ASTERISK-20135)
reported by Richard Mudgett

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@371590 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-08-21 20:35:12 +00:00
Kinsey Moore
377caa7fb1 Clean up and ensure proper usage of alloca()
This replaces all calls to alloca() with ast_alloca() which calls gcc's
__builtin_alloca() to avoid BSD semantics and removes all NULL checks
on memory allocated via ast_alloca() and ast_strdupa().

(closes issue ASTERISK-20125)
Review: https://reviewboard.asterisk.org/r/2032/
Patch-by: Walter Doekes (wdoekes)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@370642 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-07-31 19:31:42 +00:00
Matthew Jordan
3edf245601 Fix a variety of memory leaks
This patch addresses a number of memory leaks in a variety of modules that were
found by a static analysis tool.  A brief summary of the changes:

* app_minivm:       free ast_str objects on off nominal paths
* app_page:         free the ast_dial object if the requested channel technology
                    cannot be appended to the dialing structure
* app_queue:        if a penalty rule failed to match any existing rule list
                    names, the created rule would not be inserted and its memory
                    would be leaked
* app_read:         dispose of the created silence detector in the presence of
                    off nominal circumstances
* app_voicemail:    dispose of an allocated unique ID field for MWI event
                    un-subscribe requests in off nominal paths; dispose of
                    configuration objects when using the secret.conf option
* chan_dahdi:       dispose of the allocated frame produced by ast_dsp_process
* chan_iax2:        properly unref peer in CLI command "iax2 unregister"
* chan_sip:         dispose of the allocated frame produced by sip_rtp_read's
                    call of ast_dsp_process; free memory in parse unit tests
* func_dialgroup:   properly deref ao2 object grhead in nominal path of
                    dialgroup_read
* func_odbc:        free resultset in off nominal paths of odbc_read
* cli:              free match_list in off nominal paths of CLI match completion
* config:           free comment_buffer/list_buffer when configuration file load
                    is unchanged; free the same buffers any time they were
                    created and config files were processed
* data:             free XML nodes in various places
* enum:             free context buffer in off nominal paths
* features:         free ast_call_feature in off nominal paths of applicationmap
                    config processing
* netsock2:         users of ast_sockaddr_resolve pass in an ast_sockaddr struct
                    that is allocated by the method.  Failures in
                    ast_sockaddr_resolve could result in the users of the method
                    not knowing whether or not the buffer was allocated.  The
                    method will now not allocate the ast_sockaddr struct if it
                    will return failure.
* pbx:              cleanup hash table traversals in off nominal paths; free
                    ignore pattern buffer if it already exists for the specified
                    context
* xmldoc:           cleanup various nodes when we no longer need them
* main/editline:    various cleanup of pointers not being freed before being
                    assigned to other memory, cleanup along off nominal paths
* menuselect/mxml:  cleanup of value buffer for an attribute when that attribute
                    did not specify a value
* res_calendar*:    responses are allocated via the various *_request method
                    returns and should not be allocated in the various
                    write_event methods; ensure attendee buffer is freed if no
                    data exists in the parsed node; ensure that calendar objects
                    are de-ref'd appropriately
* res_jabber:       free buffer in off nominal path
* res_musiconhold:  close the DIR* object in off nominal paths
* res_rtp_asterisk: if we run out of ports, close the rtp socket object and free
                    the rtp object
* res_srtp:         if we fail to create the session in libsrtp, destroy the
                    temporary ast_srtp object

(issue ASTERISK-19665)
Reported by: Matt Jordan

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

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@366880 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2012-05-18 13:58:23 +00:00
Kinsey Moore
c4b7983866 Fix res_jabber resource leaks
This should fix almost all resource leaks in res_jabber that involve
ASTOBJ_CONTAINER_FIND and resolves an ambiguous situation where
ast_aji_get_client would sometimes bump an object's refcount and sometimes not.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@346086 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-11-23 17:12:46 +00:00
Jonathan Rose
dffe914c06 Cleanup reference leaks in res_jabber
res_jabber.c had a number of places where astobjs would be referenced and have their
reference counts bumped without having a dereference made before the object lost scope.
This patch adds a number of ASTOBJ_UNREFs to resolve that.

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@342545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-27 13:58:21 +00:00
Jonathan Rose
5435277e90 Reverting revision 333265 due to component connection problems it introduces.
I'm going to attempt some generic res_jabber cleanup and come up with a new fix for this
problem, but first it seems prudent to remove this rather broad attempt to fix it and
instead approach this problem either from the same angle but looking only at canceling
(or possibly rescheduling) the send when we absolutely know it will cause a segfault 
or, if that can't be easily accomplished, strictly from the devstate side of things.
Also, I'm pretty sure a lot of the code in res_jabber isn't thread safe.

(issue ASTERISK-18626)
(issue ASTERISK-18078)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@339297 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-10-04 14:01:05 +00:00
Jonathan Rose
3b2f8bc772 Accidental use of variable client->status instead of client->state in from ASTERISK-18078
(issue ASTERISK-18078)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@333569 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-08-29 15:55:34 +00:00
Jonathan Rose
7f1ca01155 [patch] Buddies are always auto-registered when processing the roster
Reporter said autoregister flag was ignored for registering 'buddies' which
had a subscription to us. Verified that this was the case and observed how
the patch addressed this and made sure it didn't break anything.

(closes issue ASTERISK-14233)
Reported by: Simon Arlott
Patches:
      asterisk-0015229.patch (license #5756) patch uploaded by Simon Arlott
Tested by: Jonathan Rose



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@333378 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-08-26 16:19:07 +00:00
Jonathan Rose
a17bc6dabd Segfault when publishing device states via XMPP and not connected
When using publishing device state with res_jabber, Asterisk will attempt
to send a device state using the unconnected client using iks_send_raw
and crash. This patch checks the validity of the connection before 
attempting to send the device state.

(closes issue ASTERISK-18078)
Reported by: Michael L. Young
Patches:
      res_jabber-segfault-pubsub-not-connected2.patch (license #5026) patch uploaded by Michael L. Young
Tested by: Jonathan Rose



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@333265 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-08-25 18:47:42 +00:00
Kevin P. Fleming
27a0e8dfe4 Convert an error message to actually be helpful.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@330648 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-08-02 20:51:56 +00:00
Leif Madsen
d4938a111e Introduce <support_level> tags in MODULEINFO.
This change introduces MODULEINFO into many modules in Asterisk in order to show
the community support level for those modules. This is used by changes committed
to menuselect by Russell Bryant recently (r917 in menuselect). More information about
the support level types and what they mean is available on the wiki at
https://wiki.asterisk.org/wiki/display/AST/Asterisk+Module+Support+States

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@328209 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-07-14 20:13:06 +00:00
Tilghman Lesher
9a3fd9a994 Removing type attributes, as a change to menuselect makes them no longer necessary.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@326469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-07-06 14:35:01 +00:00
Tilghman Lesher
d104b4e701 Add the attribute "type" to each "<use>" for menuselect.
This matters only when autoconf fails to detect that weak linking is supported.
External optional dependencies will become optional in both cases, as they are
removed at compile time when not detected.  However, runtime-optional modules
are made mandatory when weak linking is not found.  This change affects only
the external optional dependencies; previously, they were incorrectly required
when weak linking support was not detected.

Patches:
	20110702__issue18062__asterisk_trunk.diff.txt by tilghman (License #5003)

Tested by: iasgoscouk


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@326411 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-07-05 22:08:29 +00:00
Russell Bryant
1ccfa50ba8 Fix more "set but unused" warnings.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@317474 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-05-05 22:36:33 +00:00
Jonathan Rose
7cf95da39a Changes some print statements/events to use a blank string in place of NULL if the string in question is NULL.
This is supposed to improve Solaris compatibility since Solaris goes berserk when trying to output NULL strings.

(closes issue #18759)
Reported by: bklang
Patches:
      null-strings.patch uploaded by bklang (license 919)



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@311352 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2011-03-18 16:19:05 +00:00
Brad Watkins
81bb08714f Fix XMPP PubSub-based distributed device state.
Initialize pubsubflags to 0 so res_jabber doesn't think there is already an XMPP connection sending device state.  Also clean up CLI commands a bit.

(closes issue #18272)
Reported by: klaus3000
Patches:
      res_jabber_fix_pubsubflags_and_CLI-patch.txt uploaded by klaus3000 (license 65)
Tested by: klaus3000, Marquis

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@296354 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-26 18:31:17 +00:00
Paul Belanger
f284b66dda Merged revisions 295440 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r295440 | pabelanger | 2010-11-18 12:51:34 -0500 (Thu, 18 Nov 2010) | 4 lines
  
  Fix compiler warnings when using openssl-dev 1.0.0+
  
  Review: https://reviewboard.asterisk.org/r/1016/
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@295441 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-11-18 18:02:12 +00:00
Terry Wilson
36a672b7e8 Merged revisions 291904 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

........
  r291904 | twilson | 2010-10-15 09:16:57 -0700 (Fri, 15 Oct 2010) | 7 lines
  
  Don't crash or deadlock on module unload
  
  We can't hold the lock while pthread_join is called since aji_log_hook will
  attempt to lock from the other therad. We reorder the pthread_join and
  ast_aji_disconnect so that we don't do an SSL_read() while SSL_shutdown is
  running, causing a crash.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@291905 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-15 16:39:58 +00:00
David Vossel
f87133b078 Fixes chan_gtalk to work with gmail client
This patch was written by Philippe Sultan (phsultan). Thanks
for keeping this up to date!



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@290479 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-05 22:00:43 +00:00
Tilghman Lesher
4760667e95 Merged revisions 290396 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r290396 | tilghman | 2010-10-05 15:21:02 -0500 (Tue, 05 Oct 2010) | 15 lines
  
  Merged revisions 290392 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r290392 | tilghman | 2010-10-05 15:20:07 -0500 (Tue, 05 Oct 2010) | 8 lines
    
    Fix a crash by ensuring that we don't alter memory after it's freed.
    
    (closes issue #17387)
     Reported by: jmls
     Patches: 
           20100726__issue17387.diff.txt uploaded by tilghman (license 14)
     Tested by: jmls
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@290408 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-05 20:23:33 +00:00
Paul Belanger
1d766ede63 Merged revisions 289704 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r289704 | pabelanger | 2010-10-01 13:09:03 -0400 (Fri, 01 Oct 2010) | 13 lines
  
  Merged revisions 289703 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r289703 | pabelanger | 2010-10-01 13:03:11 -0400 (Fri, 01 Oct 2010) | 6 lines
    
    Disable debugging by default
    
    and reformat .config file.
    
    Review: https://reviewboard.asterisk.org/r/929/ 
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@289718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-10-01 17:19:49 +00:00
Tilghman Lesher
6c61e312c6 Merged revisions 284593,284595 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r284593 | tilghman | 2010-09-01 17:59:50 -0500 (Wed, 01 Sep 2010) | 18 lines
  
  Merged revisions 284478 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r284478 | tilghman | 2010-09-01 13:49:11 -0500 (Wed, 01 Sep 2010) | 11 lines
    
    Ensure that all areas that previously used select(2) now use poll(2), with implementations that need poll(2) implemented with select(2) safe against 1024-bit overflows.
    
    This is a followup to the fix for the pthread timer in 1.6.2 and beyond, fixing
    a potential crash bug in all supported releases.
    
    (closes issue #17678)
     Reported by: russell
    Branch: https://origsvn.digium.com/svn/asterisk/team/tilghman/ast_select 
    
    Review: https://reviewboard.asterisk.org/r/824/
  ........
................
  r284595 | tilghman | 2010-09-01 22:57:43 -0500 (Wed, 01 Sep 2010) | 2 lines
  
  Failed to rerun bootstrap.sh after last commit
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@284597 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-09-02 05:00:34 +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
Tilghman Lesher
7515e03c8b And yet one more
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276911 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-16 06:04:22 +00:00
Tilghman Lesher
be7fbdf25d "Item may be used uninitialized in this function."
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276910 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-07-16 05:59:11 +00:00
Tilghman Lesher
a0d8a35659 Argh, mixed declarations and code.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270552 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-15 18:16:04 +00:00
Tilghman Lesher
81c15adfa2 Add distributed devicestate via the XMPP protocol.
(closes issue #15757)
 Reported by: Marquis
 Patches: 
       distributed_devstate-XMPP.txt uploaded by lmadsen (license 10)
 Tested by: Marquis, lmadsen, marcelloceschia
 
Review: https://reviewboard.asterisk.org/r/351/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-15 17:06:23 +00:00
Leif Madsen
c672763af8 Fix some doxygen warnings.
(closes issue #17336)
Reported by: snuffy
Patches:
      doxygen-fixes1.diff uploaded by snuffy (license 35)
Tested by: russell

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268969 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-06-08 14:38:18 +00:00
Philippe Sultan
5200b6e81e Prevent a crash when a buddy gets offline.
(closes issue #16760)
Reported by: fiddur
Patches:
      248394.diff uploaded by fiddur (license 678)i with modifications by me
Tested by: fiddur, phsultan


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@253261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-18 15:59:19 +00:00
Leif Madsen
06041ea28d Fix several XML documentation validate errors.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249892 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-02 19:02:56 +00:00
Philippe Sultan
945529cae8 Add a new manager event for our buddies status.
The new JabberStatus event gives a concise view of the status change to the AMI
clients. Thanks fiddur!

(closes issue #16760)
Reported by: fiddur
Patches:
      244498.2.diff uploaded by fiddur (license 678)
Tested by: fiddur, phsultan


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247500 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-18 16:34:08 +00:00
Jeff Peeler
6b34563778 Add auth_policy option to jabber.conf for auto user registration.
The option is global and currently the acceptable values as noted in the sample
config are accept or deny.

(closes issue #15228)
Reported by: lp0


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@235342 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-16 20:25:27 +00:00
Jeff Peeler
26daf50863 Add applications JabberJoin, JabberLeave, JabberSendGroup for XMPP groupchat
(closes issue #14352)
Reported by: fiddur
Patches: 
      trunk-14352-2.diff uploaded by phsultan (license 73)
Tested by: fiddur


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@233468 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-12-07 17:59:46 +00:00
Philippe Sultan
b11b94a083 Add JABBER_RECEIVE as a dialplan function, implement SendText in Jingle channels
JABBER_RECEIVE (along with JabberSend) makes Asterisk interact with users over
XMPP to process calls.
SendText can be used instead of JabberSend in the context of XMPP based voice
channels (chan_gtalk and chan_jingle).

(closes issue #12569)
Reported by: eech55
Tested by: phsultan, asannucci, lmadsen, jtodd, maxgo

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@220457 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-25 10:54:42 +00:00
Sean Bright
d8a2d3dedf Remove some unused defines from res_jabber.
(closes issue #15359)
Reported by: snuffy
Patches:
      bug_res_jabber_unused_defines.diff uploaded by snuffy (license 35)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@218973 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-09-16 20:32:50 +00:00
David Brooks
d81d6d3415 Fixing typos. Replaces "recieved" with "received" and "initilize" with "initialize"
(closes issue #15571)
Reported by: alecdavis



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@209098 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-07-27 16:33:50 +00:00
Russell Bryant
0e8c630224 Move OpenSSL initialization to a single place, make library usage thread-safe.
While doing some reading about OpenSSL, I noticed a couple of things that
needed to be improved with our usage of OpenSSL.

1) We had initialization of the library done in multiple modules.  This has now
   been moved to a core function that gets executed during Asterisk startup.
   We already link OpenSSL into the core for TCP/TLS functionality, so this
   was the most logical place to do it.

2) OpenSSL is not thread-safe by default.  However, making it thread safe is
   very easy.  We just have to provide a couple of callbacks.  One callback
   returns a thread ID.  The other handles locking.  For more information,
   start with the "Is OpenSSL thread-safe?" question on the FAQ page of
   openssl.org.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@205120 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-07-08 15:17:19 +00:00
Kevin P. Fleming
82fb56886e More 'static' qualifiers on module global variables.
The 'pglobal' tool is quite handy indeed :-)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@200620 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-15 17:34:30 +00:00
Eliel C. Sardanons
8d464b7211 Move JabberSend manager action from static docs to the AstXML form.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@198565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-06-01 16:09:42 +00:00
Sean Bright
3353710e16 Properly terminate the receive buffer before sending to iksemel.
aji_io_recv takes the maximum number of bytes to read (instead of the total
buffer size), so we have to subtract 1 from our buffer size.  Without this, when
we receive packets that are larger than our buffer, iksemel will choke and
things get wonky.

(closes issue #15232)
Reported by: lp0
Patches:
      05302009_res_jabber.c.patch uploaded by seanbright (license 71)
Tested by: seanbright, lp0


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@198375 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-30 20:11:33 +00:00
Sean Bright
90c3db40ed Merged revisions 198370 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r198370 | seanbright | 2009-05-30 15:36:20 -0400 (Sat, 30 May 2009) | 12 lines
  
  Properly terminate AMI JabberSend response messages.
  
  The response message (either Error or Success) needs an extra trailing \r\n
  after the fields to inform the client that the message is complete.
  
  (closes issue #14876)
  Reported by: srt
  Patches:
        05302009_1.4_res_jabber.c.diff uploaded by seanbright (license 71)
        asterisk_14876.patch uploaded by srt (license 378)
        trunk-14876-2.diff uploaded by phsultan (license 73)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@198371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-30 19:38:58 +00:00
Sean Bright
fcda626f3c Fix build under dev mode and remove some casts that are no longer necessary as
a result of the const-ify the world patch.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196227 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-22 16:10:33 +00:00
Kevin P. Fleming
e6b2e9a750 Const-ify the world (or at least a good part of it)
This patch adds 'const' tags to a number of Asterisk APIs where they are appropriate (where the API already demanded that the function argument not be modified, but the compiler was not informed of that fact). The list includes:

- CLI command handlers
- CLI command handler arguments
- AGI command handlers
- AGI command handler arguments
- Dialplan application handler arguments
- Speech engine API function arguments

In addition, various file-scope and function-scope constant arrays got 'const' and/or 'static' qualifiers where they were missing.

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



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@196072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-05-21 21:13:09 +00:00
Russell Bryant
2800100cf7 fix a few more XML documentation problems
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@175636 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-13 20:26:49 +00:00
Tilghman Lesher
f931abc61a Add XML documentation for the applications and functions in res_jabber
(closes issue #14405)
 Reported by: snuffy
 Patches: 
       xml_jabber.diff uploaded by snuffy (license 35)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@173503 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-02-04 21:26:15 +00:00
Eliel C. Sardanons
1e8e12efcf Janitor, use ARRAY_LEN() when possible.
(closes issue #13990)
Reported by: eliel
Patches:
      array_len.diff uploaded by eliel (license 64)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@161218 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-12-05 10:31:25 +00:00