Commit Graph

4834 Commits

Author SHA1 Message Date
Luigi Rizzo
5dcfd811d7 more dialog_ref()/dialog_unref() calls
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77648 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-28 16:38:07 +00:00
Luigi Rizzo
d480266797 start introducing hooks for reference counts on dialog descriptors.
This commit is, for all practical purposes, a no-op, as it only
introduces the dialog_ref() and dialog_unref() methods, and uses them
in a few places (not all the places where they would be needed).

The goal is to start annotating the code with these calls, so the transition
to a proper container will be easier.

Nothing to backport.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77647 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-28 16:25:25 +00:00
Luigi Rizzo
df75ae2285 remove an unused string
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77631 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-28 09:32:10 +00:00
Luigi Rizzo
800e1a6a03 simplify a conditional expression using S_OR
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77630 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-28 09:29:22 +00:00
Luigi Rizzo
6d8c6a9961 make use of received= and rport= fields in sip replies.
In a nutshell, these fields are used to tell a sip entity
the address and port its request came from, and are extremely
useful in the presence of NATs, especially with symmetric NATs
where STUN is totally ineffective.

This patch stores the address and port in the 'ourip' field of
the dialog descriptor, so they can be reused in subsequent transactions.
As it is, it works well for things like REGISTER requiring authentication,
because the second REGISTER request (with auth credentials) will carry
the correct address. Maybe it can also be useful, in case of an address
change, to do one or both of the following:

+ propagate the new address to the parent user/peer descriptor so that new
  dialogs will use the correct address from the beginning.
  This is trivial to implement, I am just waiting for feedback on this.

+ re-issue a request in case of an address change. This a lot less trivial,
  maybe unnecessary, and probably covered by the previous item.

I would seriously consider this patch for addition to 1.4 and 1.2.
The code is very little intrusive, and it would solve in a correct
way the nat traversal problems for which externip/externaddr/stunaddr
are only a partial and expensive workaround.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77616 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-28 07:44:16 +00:00
Joshua Colp
111250f2ae Turn 4 lines of code into 1 line that does the same thing.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77538 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-27 16:31:55 +00:00
Joshua Colp
f6498f16bb Merged revisions 77536 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r77536 | file | 2007-07-27 13:27:16 -0300 (Fri, 27 Jul 2007) | 6 lines

(closes issue #10323)
Reported by: julianjm
Patches:
      chan_sip_device_state_hold_fix.v1.diff.txt uploaded by julianjm (license 99)
Clear ONHOLD flag when decrementing the onHold peer count. If we did not do this the count may keep decreasing.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77537 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-27 16:29:40 +00:00
Mark Michelson
d17d9c542b Merged revisions 77490 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r77490 | mmichelson | 2007-07-27 09:30:43 -0500 (Fri, 27 Jul 2007) | 3 lines

"re-invite" was misspelled


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77491 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-27 14:31:35 +00:00
Russell Bryant
f8483a0d04 Do a massive conversion for using the ast_verb() macro
(closes issue #10277, patches by mvanbaak)

Basically, this changes ...

if (option_verbose > 2)
   ast_verbose(VERBOSE_PREFIX_3, "Something\n");

to ...

ast_verb(3, "Something\n");


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77299 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-26 15:49:18 +00:00
Russell Bryant
70f140c1d2 Revert some changes to call abs() on the result of ast_random().
* random() is defined to return a positive result, and now ast_random()
   will always do so as well


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77269 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-26 13:26:44 +00:00
Tilghman Lesher
7a97d49914 Things expecting a positive result from ast_random() should not be surprised (closes #10308)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77267 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-26 13:19:07 +00:00
Luigi Rizzo
546c742106 silence a warning in ast-devmode on a potentially uninitialized var.
At first sight (but the function is very large so i am not 100% sure)
the code seems correct, so maybe my compiler is just not smart
enough to figure that out at the optimization level it has.

Not worthwhile merging to 1.4 i believe.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77156 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-25 21:58:13 +00:00
Steve Murphy
30c771a9d7 Merged revisions 76983 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r76983 | murf | 2007-07-24 18:18:32 -0600 (Tue, 24 Jul 2007) | 9 lines

Merged revisions 76978 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r76978 | murf | 2007-07-24 18:07:24 -0600 (Tue, 24 Jul 2007) | 1 line

this fixes bug 10293, where the error message because defaultzone or loadzone was not defined was confusing
........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76984 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-25 00:34:42 +00:00
Jason Parker
cf551decc5 Revert trivial whitespace change (for testing)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76852 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 17:43:36 +00:00
Jason Parker
307d1fcb77 Trivial whitespace change to test comitting...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76841 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 17:23:16 +00:00
Tilghman Lesher
1c17bc177d Merged revisions 76803 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r76803 | qwell | 2007-07-24 11:32:20 -0500 (Tue, 24 Jul 2007) | 3 lines

Don't create the Asterisk channel until we are starting the PBX on it.
(ASA-2007-018)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76807 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 17:05:10 +00:00
Jason Parker
3562d4eea2 The chan_skinny Dial() syntax was funky. You had to do Dial(Skinny/line@device)
This allows you to just Dial(Skinny/line), as long as line isn't ambiguous.

Note that this does not remove or deprecate the "old" syntax, as it's still
 quite useful - even moreso if shared lines get implemented.


Initial patch by me, with some changes and suggestions from wedhorn.
(closes issue #10263)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76785 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 15:35:58 +00:00
Luigi Rizzo
961165519e two small fixes when using stun (reported by Marta Carbone):
+ externexpire was not initialized properly;
+ stunaddr was not handled properly on a sip reload



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76770 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-24 14:49:49 +00:00
Tilghman Lesher
55b1ee298e Merge the dialplan_aesthetics branch. Most of this patch simply converts applications
using old methods of parsing arguments to using the standard macros.  However, the big
change is that the really old way of specifying application and arguments separated by
a comma will no longer work (e.g. NoOp,foo|bar).  Instead, the way that has been
recommended since long before 1.0 will become the only method available (e.g. NoOp(foo,bar).


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76703 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 19:51:41 +00:00
Jason Parker
d8d1b6c8f2 Merged revisions 76656 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r76656 | qwell | 2007-07-23 13:59:28 -0500 (Mon, 23 Jul 2007) | 3 lines

Fix some incorrect softkey labels in messages.
Don't try to play dialtone in some unimplemented features.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76657 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 19:00:19 +00:00
Joshua Colp
34e92f29f6 Merged revisions 76654 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r76654 | file | 2007-07-23 15:29:48 -0300 (Mon, 23 Jul 2007) | 12 lines

Merged revisions 76653 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r76653 | file | 2007-07-23 15:28:13 -0300 (Mon, 23 Jul 2007) | 4 lines

(closes issue #5866)
Reported by: tyler
Do not force channel format changes when a generator is present. The generator may have changed the formats itself and changing them back would cause issues.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76655 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 18:31:06 +00:00
Jason Parker
6f81f60696 Merged revisions 76620 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

(closes issue #10276)
........
r76620 | qwell | 2007-07-23 12:57:53 -0500 (Mon, 23 Jul 2007) | 4 lines

Don't try to queue up hold/unhold frames on a non-existent channel.

Issue 10276.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76621 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 17:58:46 +00:00
Luigi Rizzo
6a9270d879 add two missing entries in the replica of the sip_tech that
does not use  DTMF BEGIN frames.

1.4 seems correct (it does not have the two fields).

However, as this bug shows, the current way of creating the sip_tech
replica is too error-prone, one can easily forget to update one of
the two entries.  Perhaps it would be better to create sip_tech_info
expliclty at module load, by doing

	sip_tech_info = sip_tech;
	sip_tech_info.send_digit_begin = NULL

(in this case, this is something applicable to 1.4 as well).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76564 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 14:45:22 +00:00
Joshua Colp
90dc0cfa85 Merged revisions 76561 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r76561 | file | 2007-07-23 11:34:21 -0300 (Mon, 23 Jul 2007) | 14 lines

Merged revisions 76560 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r76560 | file | 2007-07-23 11:32:07 -0300 (Mon, 23 Jul 2007) | 6 lines

(closes issue #10236)
Reported by: homesick
Patches:
      rpid_1.4_75840.patch uploaded by homesick (license 91)
Accept Remote Party ID on guest calls.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76563 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 14:38:35 +00:00
Russell Bryant
7a2772c151 Mark str2dtmfmode() as currently unused to resolve a compiler warning and
allow building under dev mode


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76562 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 14:37:26 +00:00
Russell Bryant
eaebbdab61 (closes issue #10271)
Reported by: snuffy
Patches:
      doxygen-updates.diff uploaded by snuffy (license 35)

Another big batch of doxygen documentation updates


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76559 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 14:32:04 +00:00
Luigi Rizzo
b1791d9349 introduce two functions, map_x_s() and map_s_x(), to map
between integers and strings using a single translation table,
and use them in a few places instead of ad-hoc routines
that duplicate the table.

On passing, note that REFER_CONFIRMED is never used, and add a
few comments.

Nothing to backport here.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76547 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 14:18:04 +00:00
Russell Bryant
83609770c1 Remove an unused function to resolve a compiler warning
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76524 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 14:02:21 +00:00
Joshua Colp
91c3d90e8f Use autoconf logic to determine byte swapping macro presence. This should now also use other macros if present.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 13:46:57 +00:00
Luigi Rizzo
ed1775bd10 move "sip prunte realtime ..." and "sip set debug ... " to NEW_CLI style.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76521 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 13:29:06 +00:00
Joshua Colp
4dc6b6d50a Merged revisions 76519 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r76519 | file | 2007-07-23 10:23:09 -0300 (Mon, 23 Jul 2007) | 6 lines

(closes issue #10268)
Reported by: mvanbaak
Patches:
      chan_skinny_openbsd.diff uploaded by mvanbaak (license 7)
Add another OS that has to use the Macros for byte ordering.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76520 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 13:24:03 +00:00
Russell Bryant
3c10aab644 Merged revisions 76485 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r76485 | russell | 2007-07-23 07:25:01 -0500 (Mon, 23 Jul 2007) | 6 lines

Use a signed integer for storing the number of bytes in the packet read from
the network.  Using an unsigned value here made it impossible to handle an
error returned from recvfrom().  Furthermore, in the case that recvfrom()
did return an error, this would cause a crash due to a heap overflow.
(closes issue #10265, reported by and fix suggested by timrobbins)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76486 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 12:29:46 +00:00
Luigi Rizzo
1ee5480549 Add some documentation on the sipregistry states and the
handling of the sip_register structures.
This commit only changes comments and whitespace.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76467 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 03:10:31 +00:00
Luigi Rizzo
28cde9fee3 add a bit of comments on internal functions.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76458 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-23 02:46:10 +00:00
Luigi Rizzo
719dcef90d rewrite "sip show {channels|subscriptions}" CLI handler
using the new-style cli format.
No functional changes, nothing to backport.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76408 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 21:38:26 +00:00
Luigi Rizzo
930bf0402d Make sip_destroy() return NULL so the caller can do things like
foo = sip_destroy(foo);
and reduce the chance of bugs due to dangling pointers.

Also remove a duplicate prototype for the function.

nothing to backport.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76392 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 21:00:10 +00:00
Luigi Rizzo
97512a856f add two comment blocks, one on reusing nonces, and one on the handling
of an 'authpeer' local variable.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76390 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 20:44:06 +00:00
Luigi Rizzo
db12b404fc comment and slightly restructure handle_request() in the part that handles
responses, so that there is a common exit point.
Mark two places where probably we could return -1 instead of 0 to report
an error to the caller.
(change triggered by investigations on how the 'SIP_PKT_IGNORE' field was used).

nothing to backport from this commit



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 19:08:37 +00:00
Luigi Rizzo
88f18dc9d7 remove unused argument from handle_invite_replaces(), and also leftover
SIP_PKT_* stuff from the previous commit.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76366 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 18:46:52 +00:00
Luigi Rizzo
b7945cd78e Cleanup of flags used in struct sip_request, moving them to
individual variables. Apart from SIP_PKT_IGNORE which was used
a zillion times, the other two are used seldom.

On passing:
- move the arrays to the end of struct sip_request, so a (small)
  buffer overflow is less likely to overwrite the other fields;
- note that the 'ignore' argument to handle_invite_replaces() is not
  used and should be removed (will be done in a separate commit).

Nothing to backport in this change.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 18:41:57 +00:00
Luigi Rizzo
aa110ad3fd move two per-packet flags to proper variables.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76349 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 18:03:07 +00:00
Luigi Rizzo
e603d729a9 minor clarification on the usage of SIP_* flags.
Also correct some items that were misclassified.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76348 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 17:27:52 +00:00
Luigi Rizzo
0d5e33f2c3 document the way sipdebug works, and implement it through
variables and not flags.

NOTE:
The old behaviour (preserved in this commit) is that if sipdebug
is set in the config file, it can only be disabled by reloading the
config.  I am not sure if this is accidental or voluntary, but it
is really unconvenient and I think it should be handled in the same
way as other options i.e. consider requests from the config file
or the cli (or the command line) to be fully equivalent and act on
the same status variable.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76330 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-22 08:42:24 +00:00
Luigi Rizzo
063edd1953 move the SIP_REALTIME flag to a field in the user/peer structure.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 17:57:47 +00:00
Luigi Rizzo
1daf32e474 Add a note to document how the temporary 'pvt' should be initialized
before using it.
I am unclear on the details right now so i hope someone can comment
more. The obvious (and lazy) approach would be to bzero() all of it
(except for the string pool), but isn't that too much work ?
Feedback wanted here...



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76313 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 17:32:00 +00:00
Luigi Rizzo
ed604a6df8 whoops... was setting needdestroy on the wrong dialog.
(spotted by a diff with my own branch)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76279 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 09:35:48 +00:00
Luigi Rizzo
b11d587ab6 more two more flags to proper variables: ALREADYGONE and NEEDDESTROY.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 09:18:50 +00:00
Luigi Rizzo
4ce3ee94c3 use explicit variables for things that don't need to
be stored in ast_flags. First victim is 'SIP_NO_HISTORY'
replaced by a 'do_history' field in the sip_pvt structure.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76231 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 03:53:17 +00:00
Luigi Rizzo
10d1b9347c Use ast_str_append() instead of ast_build_string() to construct
the sdp messages. Overall the code is slightly more readable
(because the string is fully described by a single pointer),
and more efficient (because the length is stored explicitly
so you don't need to do strlen()).
(I have been using this code for almost a year now.)

I wish we had infix string operators to do this sort of things!

Nothing to backport from this change.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76229 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 02:33:25 +00:00
Luigi Rizzo
06a3436375 We have two 'technology' descriptors for a SIP channel, so
define and use a macro to determine whether we are pointing to
one of them, so when one goes away (or a new one appears) we don't
have to touch all the code.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76224 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-07-21 01:25:13 +00:00