https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89119 | mmichelson | 2007-11-08 15:00:08 -0600 (Thu, 08 Nov 2007) | 7 lines
Rework of the commit I made yesterday to use the already built-in
ast_uri_decode function as opposed to my home-rolled one. Also added
comments.
Thanks to oej for pointing me in the right direction
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89120 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89099 | file | 2007-11-07 21:28:56 -0400 (Wed, 07 Nov 2007) | 6 lines
Improve the devicestate logic for multiple devices. If any are available then the extension is considered available.
(closes issue #10164)
Reported by: nic_bellamy
Patches:
sip-hinting-svn-branch-1.4.patch uploaded by nic (license 299)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89100 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89097 | file | 2007-11-07 21:11:25 -0400 (Wed, 07 Nov 2007) | 8 lines
Add support for allowing one outgoing transaction. This means if a response comes back out of order chan_sip will still handle it. I dream of a chan_sip with real transaction support.
(closes issue #10946)
Reported by: flefoll
(closes issue #10915)
Reported by: ramonpeek
(closes issue #9567)
Reported by: atca_pres
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89098 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r89090 | mmichelson | 2007-11-07 16:40:35 -0600 (Wed, 07 Nov 2007) | 6 lines
This patch makes it possible for SIP phones to dial extensions defined with '#' characters
in extensions.conf AND maintain their escaped characters when forming URI's
(closes issue #10681, reported by cahen, patched by me, code review by file)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89091 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- Remove the AST_FORMAT_MAX_* types, as these are consuming 3 out of our available 32 bits.
- Add a native slin16 type, so that 16kHz codecs can translate without losing resolution.
(This doesn't affect anything immediately, until another codec has wb support.)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89071 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r88768 | russell | 2007-11-05 15:33:56 -0600 (Mon, 05 Nov 2007) | 8 lines
When traversing the list of channel variables here in transmit_invite(), the
asterisk channel must be locked, as this data may change at any time.
(I have seen numerous reports of crashes related to the handling of channel
variables. There are a couple of issues on the bug tracker related to it,
but it has also been noted on IRC and mailing lists. So, I am finding and
fixing some places where channel variables are handled improperly.)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88769 65c4cc65-6c06-0410-ace0-fbb531ad65f3
details and examples are in include/asterisk/stringfields.h.
Not applicable to older branches except for 1.4 which will
receive a fix for the routines that free memory pools.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r88328 | file | 2007-11-02 17:20:21 -0300 (Fri, 02 Nov 2007) | 6 lines
If an INFO request within a dialog is received with a content length of 0 simply send back a 200 OK. It is valid to do this and the remote side is probably using it to make sure the signalling is still alive.
(closes issue #5747)
Reported by: chandi
Patches:
infofix-81430-1.patch uploaded by IgorG (license 20)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@88329 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r87342 | file | 2007-10-29 14:20:28 -0300 (Mon, 29 Oct 2007) | 6 lines
Fix issue where if both sides of the dialog cancelled the dialog at the same time chan_sip could kepe retransmitting a response for no reason.
(closes issue #9566)
Reported by: atca_pres
Patches:
bug9566.patch uploaded by oej
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@87343 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r86471 | file | 2007-10-19 12:33:49 -0300 (Fri, 19 Oct 2007) | 6 lines
Fix two issues with domains and transfers. If a port was given in the hostname it was treated as part of the hostname. If domains were configured but external domains were not enabled all transfers would be considered remote.
(closes issue #11027)
Reported by: ramonpeek
Patches:
11027-1.diff uploaded by ramonpeek (license 266)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86472 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r86149 | russell | 2007-10-17 12:57:45 -0500 (Wed, 17 Oct 2007) | 8 lines
If Asterisk is in the middle of shutting down, respond to OPTIONS
with 503 Unavailable.
(closes issue #10994)
Reported by: eserra
Patches:
sip-options-503.patch uploaded by eserra (license 45)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@86150 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Don't improperly memset() over an ast_str. This was leftover from before it
got changed to use ast_str.
(closes issue #11003, reported by pj)
(closes issue #10770, reported by yehavi)
(patched by me)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r85604 | russell | 2007-10-15 11:54:57 -0500 (Mon, 15 Oct 2007) | 6 lines
Make the default for the srvlookup option to be yes. It doesn't really make
sense for it to default to off. The default configuration file has it on, and
proper RFC behavior, as indicated by a comment in the code, is for it to be on.
So, let's have it on by default to make lives easier.
(closes issue #10954, suggested by jtodd)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@85605 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r84370 | russell | 2007-10-02 09:12:35 -0500 (Tue, 02 Oct 2007) | 6 lines
Use snprintf instead of sprintf in one place. There is no vulnerability here
due to various buffer sizes around the code, but I still didn't like seeing a
non length-limited copy of data coming off of the wire into a stack buffer, as
this would be a problem in the future if buffer sizes elsewhere got changed or
size limitations removed ...
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84371 65c4cc65-6c06-0410-ace0-fbb531ad65f3
a patch for it. It replaces a bunch of simple calls to snprintf with ast_copy_string
(closes issue #10843)
Reported by: Corydon76
Patches:
2007092900_10843.diff uploaded by mvanbaak (license 7)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@84173 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r83941 | russell | 2007-09-26 16:15:15 -0500 (Wed, 26 Sep 2007) | 5 lines
Add a log message that was requested by the masses in the developer tutorial
session at Astricon. chan_sip did not output any message when a call was
rejected because the extension was not found. This adds a verbose message
(at verbose level 3) to note when this happens.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83942 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r83432 | russell | 2007-09-21 09:37:20 -0500 (Fri, 21 Sep 2007) | 4 lines
gcc 4.2 has a new set of warnings dealing with cosnt pointers. This set of
changes gets all of Asterisk (minus chan_alsa for now) to compile with gcc 4.2.
(closes issue #10774, patch from qwell)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@83433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Reported by: junky
Patches:
register_trying.diff.txt uploaded by jcmoore
Disable sending 100 Trying on REGISTER attempts and make it an option. This has been signed off by oej.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82257 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Reported by: casper
Patches:
chan_sip.c.82076.diff uploaded by casper (license 55)
Remove double check for zombie flag and optimize things a bit.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@82077 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r81832 | russell | 2007-09-06 17:28:57 -0500 (Thu, 06 Sep 2007) | 16 lines
(closes issue #9724, closes issue #10374)
Reported by: kenw
Patches:
9724.txt uploaded by russell (license 2)
Tested by: kenw, russell
Resolve a deadlock that occurs when doing a SIP transfer to parking.
I come across this type of deadlock fairly often it seems. It is very important
to mind the boundary between the channel driver and the core in respect to the
channel lock and the channel-pvt lock. Channel drivers lock to lock the
pvt and then the channel once it calls into the core, while the core will do
it in the opposite order. The way this is avoided is by having channel drivers
either release their pvt lock while calling into the core, or such as in this
case, unlocking the pvt just long enough to acquire the channel lock.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r81442 | kpfleming | 2007-09-04 11:40:39 -0500 (Tue, 04 Sep 2007) | 2 lines
there is no point in sending 401 Unauthorized to a UAS that sent us a properly-formatted Authentication header with the expected username and nonce but an incorrect response (which indicates the shared secret does not match)... instead, let's send 403 Forbidden so that the UAS doesn't retry with the same authentication credentials repeatedly
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81443 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r81395 | file | 2007-08-30 18:23:50 -0300 (Thu, 30 Aug 2007) | 6 lines
(closes issue #10514)
Reported by: casper
Patches:
chan_sip.c.80129.diff uploaded by casper (license 55)
Remove needless check for AUTH_UNKNOWN_DOMAIN. It was impossible for it to ever be that value.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81396 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Reported by: tootai
Make sure the external IP address has the standard SIP port set for when the user does not specify the port in the externip setting.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81394 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r81012 | file | 2007-08-27 12:01:59 -0300 (Mon, 27 Aug 2007) | 6 lines
(closes issue #10561)
Reported by: jesselang
Patches:
chan_sip-ChannelReload-20080825.patch uploaded by jesselang (license 202)
Remove an extra \r\n to make the ChannelReload event conform with every other event.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81013 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r80183 | russell | 2007-08-21 13:42:15 -0500 (Tue, 21 Aug 2007) | 7 lines
Don't record SIP dialog history if it's not turned on. Also, put an upper
limit on how many history entires will be stored for each SIP dialog. It is
currently set to 50, but can be increased if deemed necessary.
(closes issue #10421, closes issue #10418, patches suggested by jmoldenhauer,
patches updated by me)
(Security implications documented in AST-2007-020)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@80184 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
(closes issue #10430)
........
r79904 | qwell | 2007-08-17 14:12:19 -0500 (Fri, 17 Aug 2007) | 11 lines
Don't send a semicolon over the wire in sip notify messages.
Caused by fix for issue 9938.
I basically took the code that existed before 9938 was fixed, and
copied it into a new function - ast_unescape_semicolon
There should be very few places this will be needed (pbx_config
does NOT need this (see issue 9938 for details))
Issue 10430, patch by me, with help/ideas from murf (thanks murf).
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79905 65c4cc65-6c06-0410-ace0-fbb531ad65f3
in place of a very common construct. I also used it in a number of places
in chan_sip.
if (id > -1)
ast_sched_del(sched, id);
id = ast_sched_add(sched, ...);
changes to:
ast_sched_replace(id, sched, ...);
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79861 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r79857 | russell | 2007-08-17 08:37:08 -0500 (Fri, 17 Aug 2007) | 5 lines
Fix some crashes in chan_sip. This patch changes various places that add items
to the scheduler to ensure that they don't overwrite the ID of a previously
scheduled item. If there is one, it should be removed.
(closes issue #10391, closes issue #10256, probably others, patch by me)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79858 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r79523 | file | 2007-08-15 11:18:44 -0300 (Wed, 15 Aug 2007) | 6 lines
(closes issue #10456)
Reported by: irroot
Patches:
sip_timeout.patch uploaded by irroot (license 52)
Change hardcoded timer value to defined value. I'm doing this in 1.4 as well so if it needs to be changed in the future this place would not have been forgotten.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79524 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r79174 | file | 2007-08-13 11:18:04 -0300 (Mon, 13 Aug 2007) | 4 lines
(closes issue #10437)
Reported by: haklin
Don't set the callerid name and number a second time on a newly created channel. ast_channel_alloc itself already sets it and setting it twice would cause a memory leak.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@79175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r78103 | mmichelson | 2007-08-03 15:25:22 -0500 (Fri, 03 Aug 2007) | 7 lines
Changed the behavior of sip's realtime_peer function to match the corresponding way of matching for non-realtime peers.
Now matches are made on both the IP address and port number, or if the insecure setting is set to "port" then just match on the
IP address.
In order to accomplish this, I also added a new API call, ast_category_root, which returns the first variable of an ast_category struct
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78186 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r78182 | file | 2007-08-06 13:32:44 -0300 (Mon, 06 Aug 2007) | 2 lines
It is possible for a transfer to occur before the remote device has our tag in which case they send none in the transfer. In this case we need to not fail the transfer dialog lookup.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r77824 | mmichelson | 2007-07-31 10:21:22 -0500 (Tue, 31 Jul 2007) | 6 lines
This patch makes Asterisk send 100 Trying provisional responses upon receipt of re-invites. This makes it so that if there are two or more Asterisk
servers between endpoints, the Asterisk servers will not keep retransmitting the re-invites.
(closes issue #10274, reported by cstadlmann, patched by me with approval from file)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77825 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+ place the link field at the beginning of struct sip_pvt,
and not somewhere in the middle;
+ in __sip_reliable_xmit, remove a duplicate assignment, and
put the statements in a more logical order (i.e. first copy
the payload and associated info, then copy arguments from the
caller, then finish initializing the headers...)
nothing to backport.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77766 65c4cc65-6c06-0410-ace0-fbb531ad65f3
SIP_NOVIDEO, SIP_DIALOG_ANSWEREDELSEWHERE, SIP_PAGE2_NOTEXT,
SIP_PAGE2_OUTGOING_CALL
These are seldom used so the diff is relatively small.
Note that 'OUTGOING_CALL' is dangerously similar to another
dialog flag, 'SIP_OUTGOING', so the description will need to
clarify the different meaning of the two.
Also note that the description of NOTEXT is a bit unclear - does
it mean we don't support it, or 'not requested or not supported' ?
On passing fix a comment referring to video instead of text.
Finally, mark with XXX a possibly misleading debugging message.
(maybe the latter is worth backporting).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77739 65c4cc65-6c06-0410-ace0-fbb531ad65f3
CLI lines. This helps maintaining consistency on output, slightly
improves readability, and maybe one day will make it easier to
translate the output in other languages (though i have a hard time
believing that a CLI user who needs 'yes' and 'no' to be translated
can actually figure out what he/she is doing!)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77726 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Start putting these variables in a single struct (called 'sip_cfg' for the time
being, but it could as well be 'global' or some other name) so it
is easy, when reading the code, to figure out what they are for.
The downside of using struct fields instead of individual global
variables is that the compiler cannot tell if there are unused fields.
But the advantage of not cluttering the namespace and manilpulating
all these variables at once certainly overcome the disadvantagess.
Nothing to backport, again.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
at load time instead of duplicating the initializer.
This should remove the risk of forgetting fields in the
initializer.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77684 65c4cc65-6c06-0410-ace0-fbb531ad65f3
use AST_FORMAT_AUDIO_MASK instead of playing with AST_FORMAT_MAX_AUDIO
to determine audio formats.
There is a dubious use of AST_FORMAT_MAX_AUDIO in sip_request_call()
which surely needs fixing, namely:
/* mask request with some set of allowed formats.
* XXX this needs to be fixed.
* The original code uses AST_FORMAT_AUDIO_MASK, but it is
* unclear what to use here. We have global_capabilities, which is
* configured from sip.conf, and sip_tech.capabilities, which is
* hardwired to all audio formats.
*/
The latter is possibly something to backport when fixed.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Move together flags used in the same way (e.g. dialog only,
dialog-peer, ...) so it will become easier to deal with them
in a more systematic way.
This is being done in stages so it will be easier to detect
breakage, if any should occur.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77669 65c4cc65-6c06-0410-ace0-fbb531ad65f3
the original pointer while calling the function.
on passing add some comments on one of the places where it
is used, and explain why it is safe there.
again, a no-op for practical purposes.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77654 65c4cc65-6c06-0410-ace0-fbb531ad65f3
dialog_ref/unref (they are a no-op at the moment).
Also clean a pointer after freeing memory to avoid
dangling references, and write a for() loop in canonical form.
In practice, everything in this commit is a no-op.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@77653 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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
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
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
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
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
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
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
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
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
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
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
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
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
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
+ extensive documentation changes both in sip.conf.sample and in the source;
+ allow "externip" and "externhost" to include a port number as well;
+ allow "bindaddr" to have a port number (making bindport unnecessary,
even though it is still present for backward compatibility);
+ introduce the new "stunaddr" parameter to specify an STUN server to
be used from the main SIP socket;
+ extend the "sip show settings" output to show all the above.
Internally:
+ change related data structures from struct in_addr to struct sockaddr_in
to store the port numbers as well;
+ reorganize ast_sip_ouraddrfor() (should also be renamed to sip_ouraddrfor()
because it is not a generic API, though it might become so if called with
a socket as an additional argument, in which case it can be moved elsewhere).
As mentioned in the documentation, media sessions still do not use STUN so the
port numbers may still be incorrect when Asterisk is behind a NAT
On passing, some of the debugging messages printing media addresses are
probably using the wrong values, but this will be checked/fixed in a
subsequent commit if needed.
Part of the following chunk in the function that handles a "sip reload" is
probably needed on previous versions as well, to avoid leaking the memory
used for the "localaddr" list:
@@ -17244,13 +17274,17 @@
/* Reset IP addresses */
memset(&bindaddr, 0, sizeof(bindaddr));
+ memset(&stunaddr, 0, sizeof(stunaddr));
+ memset(&internip, 0, sizeof(internip));
+ /* Free memory for local network address mask */
+ ---> ast_free_ha(localaddr); <-----
memset(&localaddr, 0, sizeof(localaddr));
memset(&externip, 0, sizeof(externip));
memset(&default_prefs, 0 , sizeof(default_prefs));
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76221 65c4cc65-6c06-0410-ace0-fbb531ad65f3
because in this case the string is left-aligned and it is not
truncated anyways.
Omitting the field size prevents the generation of trailing whitespace,
which makes the string fit in smaller windows.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76037 65c4cc65-6c06-0410-ace0-fbb531ad65f3
localnet settings (requires the change in SVN 76034), and also
give an indication on whether/why/how the remapping of addresses
in SIP message is done or not.
I think this is especially useful for debugging the configuration,
as the address remapping depends on a combination of at least 3
parameters (localnet, externhost, externip) and successful DNS lookup.
An example of the output of this section is below:
Network Settings:
---------------------------
SIP address remapping: Enabled using externhost
Externhost: foo.dyndns.net
Externip: 80.64.128.23:0
Externrefresh: 10
Internal IP: 12.34.56.78:5060
Localnet: 192.168.0.0/255.255.0.0
10.0.0.0/255.0.0.0
I leave to the community the judgement if the above info is a
useful addition for 1.4. It is not a bugfix, but it is neither a
new feature, only a useful diagnostic tool.
Note that I would like to move there also the bindaddress/port
information, in the usual addr:port format e.g.
Bindaddress: 0.0.0.0:5060
so that network information is all in one place.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@76035 65c4cc65-6c06-0410-ace0-fbb531ad65f3
in the "sip show settings" cli output. I have put these in a
separate section, probably even bindaddr and SIP port should go
there.
There are more things to add here e.g. localnet and so on.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@75878 65c4cc65-6c06-0410-ace0-fbb531ad65f3
If the call is answered by another phone, other phones won't display the call as "missed".
You can also add an option to the dial command so that you can have a "followme"
scenario and not count the calls as "missed" when you cancel the call.
Thanks to Ramon and Frank for feedback on this feature.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@74024 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r73679 | russell | 2007-07-06 10:57:25 -0500 (Fri, 06 Jul 2007) | 15 lines
Merged revisions 73678 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r73678 | russell | 2007-07-06 10:55:41 -0500 (Fri, 06 Jul 2007) | 7 lines
(closes issue #10125)
Reported by: makoto
Patches submitted by: makoto
This fixes a crash in chan_sip that happens when the bindaddr setting is not
valid on Asterisk startup, gets fixed, and then a reload gets issued.
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@73680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r69944 | russell | 2007-06-19 10:22:36 -0500 (Tue, 19 Jun 2007) | 10 lines
Fix a crash that could occur when handing device state changes.
When the state of a device changes, the device state thread tells the extension
state handling code that it changed. Then, the extension state code calls the
callback in chan_sip so that it can update subscriptions to that extension.
A pointer to a sip_pvt structure is passed to this function as the call which
needs a NOTIFY sent. However, there was no locking done to ensure that the pvt
struct didn't disappear during this process.
(issue #9946, reported by tdonahue, patch by me, patch updated to trunk to use
the sip_pvt lock wrappers by eliel)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@69945 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r69661 | file | 2007-06-18 11:46:32 -0400 (Mon, 18 Jun 2007) | 2 lines
Few minor transfer tweaks. We can't unlock something we never locked, and better handle a specific scenario with doing an attended transfer between two non-bridged calls.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@69663 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r69183 | russell | 2007-06-13 14:57:38 -0500 (Wed, 13 Jun 2007) | 9 lines
Move the logic for destroying a call when no response is received to a BYE
outside of the block that checks for FLAG_FATAL to be set. This flag is only
set when the packet is transmitted with the reliability set to XMIT_CRITICAL
when the original packet is transmitted. A BYE is always sent with it set
to XMIT_RELIABLE, meaning this code could never be encountered. This resulted
in seeing some SIP channels that would never go away with the last packet
sent being a BYE.
(part of issue #9235, patch from jcmoore)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@69187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
disclaimer along with SIP messages in the header, X-Disclaimer. This is off by
default. Also, the text of the disclaimer can be customized in sip.conf.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@66777 65c4cc65-6c06-0410-ace0-fbb531ad65f3
places in the code where the same block of code for creating detached threads
was replicated. (patch from bbryant)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65968 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- convert string handling to the ast_str API
- Convert strdup() to ast_strdup() and check the result
- Minor formatting changes
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65749 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r65076 | oej | 2007-05-18 17:18:13 +0200 (Fri, 18 May 2007) | 13 lines
Merged revisions 65075 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r65075 | oej | 2007-05-18 17:12:09 +0200 (Fri, 18 May 2007) | 5 lines
Issue 9235 - part of the problem, maybe not all. Please retry with this patch (and no
other patch) if you have problems with hanging SIP channels. Thank you.
A special Thank You to WeBRainstorm that gave me access to his system.
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@65077 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r64516 | oej | 2007-05-16 10:46:18 +0200 (Wed, 16 May 2007) | 17 lines
Merged following patch with a lot of changes for 1.4
------
Merged revisions 64514 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r64514 | oej | 2007-05-16 10:25:56 +0200 (Wed, 16 May 2007) | 6 lines
Issue #9726 - rlister - Better logging for ACL denials
While at it, also added better logging and handling of peers that are not supposed to register.
My patch, stole the issue report from Russell. My apologies, Russell :-)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@64517 65c4cc65-6c06-0410-ace0-fbb531ad65f3
With this code, the call will fail as soon as we get a network error. This may happen on
first xmit or a later one, so the retransmit code handles this too.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@64142 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- Correcting error messages
- Disabling code that doesn't do anything
- Making sure we always respond to this request, happily
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@63136 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This set of changes introduces a new generic event API for use within Asterisk.
I am still working on a way for events to be shared between servers, but this
part is ready and can already be used inside of Asterisk.
This set of changes introduces the first use of the API, as well. I have
restructured the way that MWI (message waiting indication) is handled. It is
now event based instead of polling based. For example, if there are a bunch
of SIP phones subscribed to mailboxes, then chan_sip will not have to
constantly poll the mailboxes for changes. app_voicemail will generate events
when changes occur.
See UPGRADE.txt and CHANGES for some more information on the effects of these
changes from the user perspective. For developer information, see the text in
include/asterisk/event.h.
As always, additional feedback is welcome on the asterisk-dev mailing list.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@62292 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r61477 | russell | 2007-04-11 11:05:29 -0500 (Wed, 11 Apr 2007) | 13 lines
Merged revisions 61476 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r61476 | russell | 2007-04-11 11:01:25 -0500 (Wed, 11 Apr 2007) | 5 lines
If someone sets the "useragent" option in sip.conf to be empty, then don't add
the User-Agent header at all. It is an optional header, anyway. Also, the bug
report says that some of Japan's SIP providers don't allow it for some weird
reason. (issue #9488, reported by makoto, fixed by me)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@61478 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r61427 | russell | 2007-04-11 10:09:39 -0500 (Wed, 11 Apr 2007) | 14 lines
Merged revisions 61426 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r61426 | russell | 2007-04-11 10:05:36 -0500 (Wed, 11 Apr 2007) | 6 lines
Fix a bug with switching between host=dynamic and using specific hosts for
peers. The code would only reset the peer's address when it is dynamic if
it was a new peer structure. Now, it will also reset the address if it was
already in the peer list, but before the reload, it was not dynamic.
(issue #9515, reported by caio1982, fixed by me)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@61428 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
................
r61377 | russell | 2007-04-11 09:04:44 -0500 (Wed, 11 Apr 2007) | 13 lines
Merged revisions 61376 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r61376 | russell | 2007-04-11 09:02:54 -0500 (Wed, 11 Apr 2007) | 5 lines
Remove the attempt at reporting configuration errors in sip.conf. This can
cause a bunch of improper messages when using realtime. I give up. As oej
tried to convince me when I put this in, there is just no easy way to do it.
(inspired by a message on the -dev list)
........
................
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@61379 65c4cc65-6c06-0410-ace0-fbb531ad65f3