Commit Graph

1315 Commits

Author SHA1 Message Date
Luigi Rizzo
055abfe9d9 simplify the ast_dynamic_str_*.... routines by
renaming them to ast_str ... and putting the
struct ast_threadstorage pointer into the struct ast_str.

This makes the code a lot more readable.

At this point we can use these routines also to
replace ast_build_string().



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 23:10:42 +00:00
Luigi Rizzo
961754d4b1 move the dynamic string support in a better place i.e. string.h
While doing this, add a bit of documentation, and slightly
extend the functionality as follows:
 + a max_len of -1 means that we take whatever the current size
   is, and never try to extend the buffer;
 + add support for alloca()-ted dynamic strings, which is very
   useful for all cases where we do an ast_build_string() now.

Next step is to simplify the interface by using shorter names
(e.g. ast_str as a prefix) and removing the _thread variant
of the functions by saving the threadstorage reference into
the struct ast_str. This can be done by overloading the
'type' field.

Finally, I will do my best to remove the convoluted interface
that results from trying to support platforms without va_copy().



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48509 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 22:08:46 +00:00
Luigi Rizzo
b6d1722c83 remove ast_safe_string_alloc() - it is completely
equivalent to asprintf().



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48499 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 15:44:59 +00:00
Luigi Rizzo
286f02bf40 small documentation improvements.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48495 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 14:33:59 +00:00
Olle Johansson
0722c9ae77 Doxygen changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48491 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 13:36:34 +00:00
Joshua Colp
bbe0a579b2 Add support to see what holds the lock when doing trylock.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48480 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 06:34:29 +00:00
Luigi Rizzo
1122621981 constify ast_state2str() and note it is not reentrant.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 04:03:42 +00:00
Luigi Rizzo
5ba11f9855 remove the macro LOAD_OH and expand it inline in the only
place where it was used.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48476 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 03:59:31 +00:00
Joshua Colp
f6649ae0af Merged revisions 48472 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r48472 | file | 2006-12-14 12:36:12 -0500 (Thu, 14 Dec 2006) | 2 lines

Payload values on the RTP structure can change AFTER a bridge has started. This comes from the packet handling of the SIP response when indication that it was answered has been sent. Therefore we need to protect this data with a lock when we read/write. (issue #8232 reported by tgrman)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48473 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-14 17:39:16 +00:00
Russell Bryant
666d526aad Fix various spelling mistakes in comments.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48417 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-12 22:32:20 +00:00
Luigi Rizzo
437f4288cd - Generalize the function ssl_setup() so that the certificate info
are passed as an argument.

- Update the code in main/http.c to use the new interface
  (the diff is large but mostly mechanical, due to the name change of
  several variables);

- And since now it is trivial, implement "AMI over TLS", and document
  the possible options in manager.conf

- And since the test client (openssl s_client -connect host:port )
  does not generate \r\n as a line terminator, make get_input()
  also accept just a \n as a line terminator (Mac users: do you
  also need the \r-only version ?)
 
The option parsing in manager.conf is not very efficient, and needs
to be cleaned up and made similar to what we have in http.conf



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48351 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-07 16:42:29 +00:00
Luigi Rizzo
6a147ed134 Make externally visible some generic code useful to create
and implement services over tcp and/or tcp-tls.
 
This commit is nothing more than moving structure definitions
(and documentation) from main/http.c to include/asterisk/http.h
(temporary location until we find a better place), and removing the
'static' qualifier from server_root() and server_start().
 
The name change (adding the ast_ prefix as a minimum, and then
possibly a more meaningful name) is postponed to future commits.

Does not apply to other versions of asterisk.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48324 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-06 16:17:57 +00:00
Russell Bryant
efc7c78ba4 Make the "usage" member of the ast_cli_entry struct const to resolve a compiler
warning.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-06 07:15:16 +00:00
Olle Johansson
fe53552f41 Doxygen updates
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48277 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-05 20:39:13 +00:00
Jason Parker
87f81679ee Expand on r48273 (from issue 8506), to translate more of the fskmodem stuff to English.
r48273 dealt with the comments and such, this deals with the code itself.
(This couldn't have been easily done if it weren't for 48273 - thanks again for that merbanan)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48276 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-05 20:15:37 +00:00
Olle Johansson
33c09cbcfa Issue #8506 - translate spanish comments in fskmodem to english (according to bug guidelines)
Thanks merbanan!


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48273 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-05 19:41:26 +00:00
Olle Johansson
00bf07b12e Well, yes...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48259 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-05 11:09:23 +00:00
Olle Johansson
b8fcae6d75 Reserving flags for coming code (currently in the "videocaps" branch)
implementing T.140 support in RTP.

T.140/RFC 4351 is TDD over IP - text telephony for hearing impaired.
It defines a realtime text chat, much like the old "talk" application
in Unix. 

T.140 is character by character in real time. It's not 
the same as our current MESSAGE format - that is more like IM, but
can be gatewayed to MESSAGE with a text "codec" if needed.

More patches will follow, as soon as we've separated this code from
the video capabilities functions in the videocaps branch.

Code by John Martin, Aupix (disclaimer on file)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48258 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-05 10:52:53 +00:00
Olle Johansson
c23bc46089 - Disable RTP timeouts during T.38 transmission
- Encapsulate RTP timers to the RTP structure, so we have one set for video and one for audio
- Document RTP keepalive configuration option
- Cleanup and document the monitor support function to hangup on RTP timeouts
- Add RTP keepalive to SIP show settings

Imported from 1.4 with modifications for trunk.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48200 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-02 12:05:40 +00:00
Olle Johansson
ae14123361 Tiny doxygen improvement
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-01 17:33:56 +00:00
Joshua Colp
869101028b Merged revisions 48168 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r48168 | file | 2006-11-30 16:18:24 -0500 (Thu, 30 Nov 2006) | 2 lines

Do not do a partial bridge for Google Talk since we need to handle STUN. (issue #8448 reported by phsultan)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48169 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-30 21:22:01 +00:00
Olle Johansson
446a06679a Documentation updates
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48164 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-30 20:34:23 +00:00
Olle Johansson
fddd385eb1 Adding some generic docs on extension and device states - watchers and providers
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48139 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-30 17:15:54 +00:00
Russell Bryant
f51cf94a62 - Fix a few spelling mistakes.
- Add some more documentation for the ast_dynamic_str_............() function
  to document the behavior of the function in the case of a partial write.
  Also, document the return value and note that the function should never need
  to be called directly.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48110 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-29 17:59:13 +00:00
Olle Johansson
b9d57e8e3a Doxygen updates
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48033 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-27 06:59:20 +00:00
Russell Bryant
a3adf3e754 - Add some comments on thread storage with a brief explanation of what it is
as well as what the motivation is for using it.
- Add a comment by the declaration of ast_inet_ntoa() noting that this function
  is not reentrant, and the result of a previous call to the function is no
  longer valid after calling it again.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48019 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-26 06:55:33 +00:00
Olle Johansson
3fd07f51f2 Doxygen update
- Document cause codes
- Document a bit more on channel variables - global, predefined and local
- Fix some doxygen in channel.h. Adding one comment for two definitions does not
  work. They won't be copied to each.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47986 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-24 14:00:19 +00:00
Joshua Colp
af51be05a6 Merged revisions 47850 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r47850 | file | 2006-11-20 10:51:37 -0500 (Mon, 20 Nov 2006) | 2 lines

Use a separate variable in the channel structure to store the context that the channel was dialed from. (issue #8382 reported by jiddings)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47851 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-20 15:55:58 +00:00
Luigi Rizzo
f148916c23 Move this macro from cli.c to cli.h so apps can use it
without duplicating the macro or the code:

/*!
 * In many cases we need to print singular or plural
 * words depending on a count. This macro helps us e.g.
 *     printf("we have %d object%s", n, ESS(n));
 */
#define ESS(x) ((x) == 1 ? "" : "s")



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47827 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-18 20:08:17 +00:00
Steve Murphy
6dcb17baaf This update fulfils the request of bug 7109, which claimed the language arg to ast_stream_and_wait() was redundant. Almost all calls just used chan->language, and seeing how chan is the first argument, this certainly seems redundant. A change of language could just as easily be done by simply changing the channel language before calling.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47821 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17 23:18:51 +00:00
Luigi Rizzo
867e3d6e5d introduce a bit of regexp support in the internal CLI api.
Now you can specify a cli command as
	"console autoanswer [on|off]"

which means the on|off argument is optional, or

	"console {mute|unmute}"

which means the mute|unmute argument is mandatory.

The blocks in [] or {} do not necessarily need to be at the
end of the string.

Completions for the variant parts are generated automatically.
This should significantly simplify the implementation of
the various handlers.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47787 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-17 11:12:13 +00:00
Paul Cadach
fc58bec502 Merged revisions 44809 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r44809 | pcadach | 2006-10-10 23:44:54 +0700 (Втр, 10 Окт 2006) | 1 line

CHANNEL() function sometime mix parameter and value
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-16 08:18:41 +00:00
TransNexus OSP Development
93df44fb9a 1. Re-format the code.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47703 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15 20:55:17 +00:00
Luigi Rizzo
6edcca7b8d one more step cleaning the internal CLI interface:
the NEW_CLI macro now supports extra arguments (to deprecate other commands).
use this to implement unload and reload, and remove some unused functions.
usual completion fixes (as these function accept multiple arguments).

The summary is still a bit inconsistent.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47654 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15 15:02:56 +00:00
Luigi Rizzo
1781f41b3b update the internal cli api following comments from kevin.
This change basically simplifies the interface of the
new-style handler removing almost all the tricks used in
the previous implementation to achieve backward compatibility
(which is still present and guaranteed.)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47652 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15 14:11:28 +00:00
Olle Johansson
6606c55844 need to check quoting in the doxygen docs...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47611 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14 16:15:34 +00:00
Olle Johansson
c17bcc0f7c Some improvements to doxygen docs
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47610 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14 16:10:32 +00:00
Luigi Rizzo
fbb143b829 Bring in the improved internal API for the CLI.
WATCH OUT: this changes the binary interface (ABI) for modules,
so e.g. users of g729 codecs need a rebuilt module (but read below).

The new way to write CLI handlers is described in detail in cli.h,
and there are a few converted handlers in cli.c, look for NEW_CLI.

After converting a couple of commands i am convinced that
it is reasonably convenient to use, and it makes it easier to fix the
pending CLI issues.

On passing, note a bug with the current 'complete' architecture:
if a command is a prefix of multiple CLI entries, we miss some
of the possible options. As an example, "core set debug" can
continue with "channel" from one CLI entry, and "off" or "atleast"
from another one.

We address this problem in a separate commit
(when i have figured out a fix, that is).

ABI issues:
I asked Kevin if it was ok to make this change and he said yes.
While it would have been possible to make the change without breaking
the module ABI, the code would have been more convoluted.

I am happy to restore the old ABI (while still being able
to use the "new style" handlers) if there is demand.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47606 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-14 15:23:35 +00:00
Matt O'Gorman
b025702287 safe terminal output is sweet.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47491 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-11 02:12:27 +00:00
Russell Bryant
2b2693499d Add the ability to specify multiple prompts to the Read() dialplan application,
similar to Background() and Playback().
(issue #7897, jsmith, with some modifications)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47408 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-10 03:59:48 +00:00
Steve Murphy
908f176cf3 A fair number of changes for the sake of bug 7506
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47290 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-07 21:47:49 +00:00
Olle Johansson
8e73644bb8 Stealing Tilghman's explanation from the -dev list and producing documentation...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47251 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-07 13:16:05 +00:00
Joshua Colp
980ce017ec Add support for manager hooks, so you could fire off manager events over IRC if you were crazy enough. (issue #5161 reported by anthm with mods by moi)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47229 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-06 17:05:04 +00:00
Luigi Rizzo
0bf4235ff1 add a new cli/manager.conf option "debug" to enable/disable
debugging code in the manager.
At the moment the debugging code is very lightweight, if the option
is enabled manager messages also carry a sequence number and
the info where they have been generated e.g.

SequenceNumber: 10
File: chan_sip.c
Line: 11927
Func: handle_response_register

It is not worthwhile having this as a compile time option
right now, because the extra work involved at runtime is
just checking one variable.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47132 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-03 18:53:26 +00:00
Joshua Colp
7f7f2fe821 Let's make application/function/hint lists read/write lists... just for kicks
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47037 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 21:40:53 +00:00
Russell Bryant
903e1e3bf3 Sure enough, some of the uses of astobj are doing recursive locking. This
doesn't work with rwlocks, so, this is reverted for now.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46994 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 18:34:50 +00:00
Russell Bryant
c8e35348c0 astobj was already set up to use read and write locks. Now that we have wrappers
for them, use them here.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 18:12:08 +00:00
Joshua Colp
ffceb28cfd Add AST_RWLIST_* set of macros which implement linked lists using read/write locks, the actual list manipulation is still done via the old macros.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46967 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 17:56:33 +00:00
Joshua Colp
ae00c6d3fa Set the AST_RWLOCK_INIT_VALUE to the PTHREAD_RWLOCK_INIT_VALUE if it is available, that way outside stuff can determine whether to use a constructor or deconstructor for initialization instead of using the init value.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46940 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 16:51:27 +00:00
Joshua Colp
aebb4aaa0d I'm crazy so I will add this... pthread rwlock wrappers, along with autoconf stuff that detects the presence of the initializer and the ability to set the kind of lock (in our case we rather like writer preferred locks so writer starvation doesn't occur... but on something like Darwin we don't get that)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46935 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 16:28:13 +00:00