https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r55914 | file | 2007-02-21 12:18:19 -0500 (Wed, 21 Feb 2007) | 2 lines
Add a flag that indicates whether a SIP dialog is an outgoing call or not. SIP_OUTGOING originally did it but it was repurposed to the direction of the last transaction, which can cause update_call_counter to falsely decrease the wrong counters. (please don't hurt me oej) (issue #8943 reported by mdu113)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@55915 65c4cc65-6c06-0410-ace0-fbb531ad65f3
T.140/RFC 2793 is a live communication channel, originally
created for IP based text phones for hearing impaired.
Feels very much like the old Unix talk application.
This code is developed and disclaimed by John Martin of Aupix, UK.
Tested for interoperability by myself and Omnitor in Sweden,
the company that wrote most of the specifications.
A big thank you to everyone involved in this.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@54838 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r54204 | russell | 2007-02-13 13:42:00 -0600 (Tue, 13 Feb 2007) | 5 lines
If we fail to create the SIP socket, then return -1 from reload_config() so
that load_module() will return AST_MODULE_LOAD_DECLINE. Otherwise, the console
will just get spammed with error messages every time chan_sip tries to send a
message.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@54260 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This replaces the older, broken, implementation where a setting in
[general] did not do anything and the [peer] part was broken.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r53810 | russell | 2007-02-09 18:35:09 -0600 (Fri, 09 Feb 2007) | 24 lines
Merge team/russell/sla_rewrite
This is a completely new implementation of the SLA functionality introduced in
Asterisk 1.4. It is now functional and ready for testing. However, I will be
adding some additional features over the next week, as well.
For information on how to set this up, see configs/sla.conf.sample
and doc/sla.txt.
In addition to the changes in app_meetme.c for the SLA implementation itself,
this merge brings in various other changes:
chan_sip:
- Add the ability to indicate HOLD state in NOTIFY messages.
- Queue HOLD and UNHOLD control frames even if the channel is not bridged to
another channel.
linkedlists.h:
- Add support for rwlock based linked lists.
dial.c:
- Add the ability to run ast_dial_start() without a reference channel to
inherit information from.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53817 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Merged revisions 53109 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r53109 | oej | 2007-02-02 01:24:03 +0100 (Fri, 02 Feb 2007) | 4 lines
Disable the direct p2p RTP call setup in SIP. You can enable it in sip.conf, but it is now
considered experimental until we solve the AST_CONTROL_ANSWER with payload and videocaps
stuff.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53110 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r53085 | oej | 2007-02-01 22:05:34 +0100 (Thu, 01 Feb 2007) | 4 lines
- Clean INC_COUNT flag when we decrement call counter
- If it's still set at time of dialog destruction, make sure we decrement the device call counter properly
before we destroy the dialog
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53092 65c4cc65-6c06-0410-ace0-fbb531ad65f3
If you set call limit and busy limit, chan_sip will indicate BUSY for a device
that has reached the busy limit and allow calls up to the call limit, allowing
for call transfers (that generate a new call).
If you only set call limit, chan_sip will not indicate BUSY until that limit
is filled.
This affects SIP subscriptions, call queues and manager applications.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r52952 | russell | 2007-01-30 13:33:12 -0600 (Tue, 30 Jan 2007) | 5 lines
Only set the DTMF flag on the rtp structure if the DTMF mode is actually
RFC2833, not just that it is not INFO. This makes it get set for inband DTMF
as well, which is not valid.
(issue #8936)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@52953 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r51311 | russell | 2007-01-19 11:49:38 -0600 (Fri, 19 Jan 2007) | 23 lines
Merge the changes from the /team/group/vldtmf_fixup branch.
The main bug being addressed here is a problem introduced when two SIP
channels using SIP INFO dtmf have their media directly bridged. So, when a
DTMF END frame comes into Asterisk from an incoming INFO message, Asterisk
would try to emulate a digit of some length by first sending a DTMF BEGIN
frame and sending a DTMF END later timed off of incoming audio. However,
since there was no audio coming in, the DTMF_END was never generated. This
caused DTMF based features to no longer work.
To fix this, the core now knows when a channel doesn't care about DTMF BEGIN
frames (such as a SIP channel sending INFO dtmf). If this is the case, then
Asterisk will not emulate a digit of some length, and will instead just pass
through the single DTMF END event.
Channel drivers also now get passed the length of the digit to their digit_end
callback. This improves SIP INFO support even further by enabling us to put
the real digit duration in the INFO message instead of a hard coded 250ms.
Also, for an incoming INFO message, the duration is read from the frame and
passed into the core instead of just getting ignored.
(issue #8597, maybe others...)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r50468 | file | 2007-01-11 00:53:09 -0500 (Thu, 11 Jan 2007) | 2 lines
Remove check for channel state as it can definitely be something other then ring, and also clean up the code a bit. This should solve the parking issues and maybe some attended transfer issues people have been seeing.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r50466 | file | 2007-01-11 00:19:39 -0500 (Thu, 11 Jan 2007) | 2 lines
Add support to see whether NAT was detected (yay symmetric RTP) and also add a check in chan_sip so that if NAT has been detected and the reinvite behind nat option has been turned off, then just do partial bridge. (issue #8655 reported by mnicholson)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50467 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r50006 | oej | 2007-01-08 15:26:14 +0100 (Mon, 08 Jan 2007) | 11 lines
Issue #8677 - Handle failure of T.38 re-invite
This is not a fix, but adding an error message to tell the admin that
we have a bad configuration. We should not send T.38 re-invites to devices
that can't handle it (with the current architecture where you have to
hard-code t.38 support per device).
To really fix this, we need to figure out a way to tell the incoming
call that the re-invite failed, so we can signal failure on that
end and go back to the original call.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50007 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r48964 | file | 2006-12-25 23:31:58 -0500 (Mon, 25 Dec 2006) | 2 lines
Add an API call that initializes an RTP structure. We need this because chan_sip is cheeky and uses a temporary RTP structure for codec purposes, and the API calls that are used rely on the lock. (Pointed out on asterisk-dev by Andy Wang)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48965 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This is imported from branch "invitestate" and "invitestate-1.4"
***
***
*** IF YOU HAVE ISSUES WITH BYEs/CANCELs - PLEASE UPDATE AND TEST AGAIN!
*** Thank you!
***
***
/Olle
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- 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
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r47823 | rizzo | 2006-11-18 18:59:35 +0100 (Sat, 18 Nov 2006) | 5 lines
fix bug 7450 - Parsing fails if From header contains angle brackets
(the bug was only in a corner case where the < was right after the
opening quote, and the fix is trivial).
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47824 65c4cc65-6c06-0410-ace0-fbb531ad65f3
clean platform for the handling of BYE/CANCEL than what we had. It might also need to changes
in other parts of the code, since we know the state of the INVITE transaction.
Please observe that this is is not dialog states at all, this is INVITE transaction states.
Hello Michael Proctor, and thank you! :-)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47740 65c4cc65-6c06-0410-ace0-fbb531ad65f3
and related code rearrangement.
Approved by: oej
This could be made better if we declared
struct sip_pvt *dialpg = pkt->owner;
at the beginning of the function, and use it throughout the function.
I'll let the boss decide :)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47539 65c4cc65-6c06-0410-ace0-fbb531ad65f3
simplify __sip_ack() removing a strcmp for looking up packets.
no functional change, only performance, so don't need to merging
to earlier branches now.
Approved By: oej
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47538 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- Keep RTP running during T.38 session
We might improve the code to issue ast_rtp_stop if T.38 re-invite not fails
later on in the code, but I don't see many reasons to.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- Fix documentation for sip_pvt_lock/unlock - doxygen does not inherit like zapata.conf !!!
- Change doc for a sip_pvt setting
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47341 65c4cc65-6c06-0410-ace0-fbb531ad65f3
avoid doing p > 0 when p is a pointer;
move a lock closer to the place where it is needed
Approved By: oej
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47318 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Same as for peers and users, replace ASTOBJ_UNREF(r, sip_registry_destroy)
with unref_registry(r);
Approved By: oej
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Replace ASTOBJ_UNREF(peer, sip_destroy_peer) with unref_peer(peer);
This places the name of the destructor in one place only (where it
should be), eliminates the chance of errors in case you specify the wrong
destructor, and also lets the compiler do type checking on the argument,
again helping with keeping the code clean.
Same for users.
remove two duplicate definitions.
Approved By: oej
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47316 65c4cc65-6c06-0410-ace0-fbb531ad65f3
to the peer side of a type=friend.
This is for trying to support BJ in his quest to solve some issues
with the queue system and type=friend objects.
BJ: Please test!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47201 65c4cc65-6c06-0410-ace0-fbb531ad65f3
e.g. in the Manager interface. This information is available as
a callerid (or something like that) during a call, but not when a
device is registered but silent.
It may be useful to have it available e.g. when developing a user
interface/operator panel, to map numbers to names.
experimental, so not committed to 1.4
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@47093 65c4cc65-6c06-0410-ace0-fbb531ad65f3
is to the person that configures asterisk. That we use it internally in the
contact header is a totally different story.
Still not convinced this is a good option.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46489 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- removing transmit_reinvite_with_t38_sdp in favour of adding an argument to
transmit_reinvite_with_sdp
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46385 65c4cc65-6c06-0410-ace0-fbb531ad65f3
lock when needed - when we remove the dialog from the dialog list
If this doesn't lead to severe problems, it might help with some locking issues
in 1.4/1.2.
- Remove the term "interface" as a synonym for a SIP dialog. Sorry, Mark, but no
one understands it... ;-)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46379 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r46082 | kpfleming | 2006-10-23 22:45:42 -0500 (Mon, 23 Oct 2006) | 2 lines
add an API call to allow channel drivers to determine which media formats are compatible (passthrough or transcode) with the format an existing channel is already using
........
r46083 | kpfleming | 2006-10-23 22:53:32 -0500 (Mon, 23 Oct 2006) | 2 lines
ensure that the translation matrix is properly lock-protected every place it is used
........
r46152 | kpfleming | 2006-10-24 18:45:19 -0500 (Tue, 24 Oct 2006) | 2 lines
if multiple translators are registered for the same source/dest combination, ensure that the lowest-cost one is always inserted earlier in the list
........
r46153 | kpfleming | 2006-10-24 19:10:54 -0500 (Tue, 24 Oct 2006) | 2 lines
code zone experiment: don't offer formats in the outbound INVITE that aren't either passthrough or translatable
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46203 65c4cc65-6c06-0410-ace0-fbb531ad65f3
appreciated really. (Read the coding guidelines).
I've worked hard to make chan_sip a better place to code in, let's
keep it that way and don't add more stuff without comments.
Thank you.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46183 65c4cc65-6c06-0410-ace0-fbb531ad65f3
so fix the places where this might happen.
This is also a fix that ought to go into 1.4
[The difference between the two functions is a bit confusing,
and in asterisk i believe all string handling functions
should be able to handl a NULL string as argument,
but changing the API in trunk and not in 1.4 would make
backporting harder.]
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46045 65c4cc65-6c06-0410-ace0-fbb531ad65f3
As discussed on the mailing lists, 0 is a legal value
for Cseq, so there is no point to treat it specially.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46035 65c4cc65-6c06-0410-ace0-fbb531ad65f3
for NULL is certainly wrong and usually disables the
checks that we want to make instead.
This commit fixes a number of the above bugs where the result
of get_header() is immediately checked for NULL.
This is certainly a candidate for merging into 1.4
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46026 65c4cc65-6c06-0410-ace0-fbb531ad65f3
On passing, remove a wrong comment (that probably I wrote
myself!) and introduce a temporary variable to avoid a
misleading cast.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46003 65c4cc65-6c06-0410-ace0-fbb531ad65f3
simplifies its usage.
+ add another client for parse_uri, in handling Contact: strings
(on passing, document the content of the "fullcontact" field);
+ in register_verify(), mark with XXX what i believe is another
misinterpretation on the URI format when '@' is missing.
No code changed here, so no fixes applied.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45977 65c4cc65-6c06-0410-ace0-fbb531ad65f3
fix parse_uri() to interpret a missing userinfo
section as a domain-only URI, and comment a wrong
interpretation of the above in check_user_full().
The function has been patched to preserve the existing
behaviour (in what admittedly is a corner case, but
could be received under attacks).
Hopefully the From: based matching will go away soon!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45976 65c4cc65-6c06-0410-ace0-fbb531ad65f3
before splitting around the @, otherwise the refer_to_domain
might contain arguments as well, causing failures.
I think this is a true bug that ought to be fixed in 1.4 as well.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45966 65c4cc65-6c06-0410-ace0-fbb531ad65f3
introducing the function parse_uri() that splits
a URI in its components.
Right now use it only in one place, because the custom
parsing that is done here and there sometimes has
bugs that i want to figure out first.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45965 65c4cc65-6c06-0410-ace0-fbb531ad65f3
apart from a small (but disabled by default) new option.
In detail:
+ introduce a new value for enum check_auth_result, AUTH_DONT_KNOW,
used (read below) when a function does not have a conclusive response.
Possibly this is the same as AUTH_NOT_FOUND, but need to check further.
+ move the large blocks (checking in the users list and in the peers
list, respectively) from check_user_full() to separate functions.
They return AUTH_DONT_KNOW in case they don't find a match, so
the caller know that it has to try the next method.
There is still some duplication of code here, but i
have not tried yet to remove it.
+ [new option] a new option in sip.conf, match_auth_username,
has been introduced, and disabled by default.
If set, and the incoming request carries authentication info,
the username to match in the users list is taken from there
rather than from the From: field.
This change is easy to identify, being made of
- one line to declare the variable match_auth_username
- a block of 15 lines in check_user_full()
- one line in sip list settings
- two lines for parsing the config file.
check_user_full() is now a lot cleaner - basically a sequence of
checks that are applied to the request. This will help future
work with new matching schemes.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45945 65c4cc65-6c06-0410-ace0-fbb531ad65f3
A large block needs reindentation now, but we don't do that because
it can be moved to a separate function.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45905 65c4cc65-6c06-0410-ace0-fbb531ad65f3
lock these data structures.
This improve readability, and also hides the underlying
locking mechanism so it is a lot easier to add diagnostic
code, or move the object locks somewhere else, etc.
On passing, rename the lock field in sip_pvt to pvt_lock,
also for ease of readability.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45786 65c4cc65-6c06-0410-ace0-fbb531ad65f3
allow custom threadstorage init functions to return failure
use a custom init function for chan_sip's temp_pvt, to improve performance a bit
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45634 65c4cc65-6c06-0410-ace0-fbb531ad65f3
be called for each thread specific object after they are allocated. Note that
there was already the ability to define a custom cleanup function. Also, if
the custom cleanup function is used, it *MUST* call free on the thread
specific object at the end. There is no way to have this magically done that
I can think of because the cleanup function registered with the pthread
implementation will only call the function back with a pointer to the
thread specific object, not the parent ast_threadstorage object.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45623 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r45408 | kpfleming | 2006-10-17 17:24:10 -0500 (Tue, 17 Oct 2006) | 3 lines
optimize the 'quick response' code a bit more... no more malloc() or memset() for each response
expand stringfields API a bit to allow reusing the stringfield pool on a structure when needed, and remove some unnecessary code when the structure was being freed
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r45378 | file | 2006-10-17 16:30:34 -0400 (Tue, 17 Oct 2006) | 2 lines
Don't create a "real" pvt structure for requests that shouldn't be able to create one. Instead use a temporary pvt and fill it with enough information so we can send a reply.
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45379 65c4cc65-6c06-0410-ace0-fbb531ad65f3
I *know* it is not required, but it makes navigation easier and will help
when splitting up this large source code file.
Thank you!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45209 65c4cc65-6c06-0410-ace0-fbb531ad65f3
necessary - rather, cast the argument to int.
In this case, the string is in a UDP packet and as such
limited to 64k so its length can be safely represented in an int
without truncation (besides, this is just a debugging message!)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45010 65c4cc65-6c06-0410-ace0-fbb531ad65f3
To avoid the same mistake in the future (due to slightly
confusing variable names), add a comment.
On passing, remove a redundant initialization.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45009 65c4cc65-6c06-0410-ace0-fbb531ad65f3
and friends in a function, auth_headers(), which is used to
simplify the interface of do_{proxy|register}_auth().
+ use PROXY_AUTH = 407, WWW_AUTH = 401 as values for enum sip_auth_type;
No functional change, only code cleanup.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44933 65c4cc65-6c06-0410-ace0-fbb531ad65f3
authentication issues. This was committed in revision 44844, where the commit
message was just "small formatting cleanup", so I am pretty sure he didn't mean
to commit this part.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44876 65c4cc65-6c06-0410-ace0-fbb531ad65f3