Commit Graph

2967 Commits

Author SHA1 Message Date
Mark Michelson
7a554a7386 Merged revisions 158053 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r158053 | mmichelson | 2008-11-20 11:33:06 -0600 (Thu, 20 Nov 2008) | 12 lines

Make sure to set the hangup cause on the calling channel in the case
that ast_call() fails. For incoming SIP channels, this was causing
us to send a 603 instead of a 486 when the call-limit was reached on
the destination channel.

(closes issue #13867)
Reported by: still_nsk
Patches:
      13867.diff uploaded by putnopvut (license 60)
Tested by: blitzrage


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@158066 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-20 17:39:06 +00:00
Mark Michelson
1a4fc71415 Merged revisions 157503 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r157503 | mmichelson | 2008-11-18 16:47:57 -0600 (Tue, 18 Nov 2008) | 13 lines

Add some missing invite state changes necessary in the sip_write
function. Not setting the invite state correctly on the call was
resulting in the Record application leaving empty files. I also
have updated the doxygen comment next to the declaration of the
INV_EARLY_MEDIA constant to reflect that we also use this state
when we *send* a 18X response to an INVITE.

(closes issue #13878)
Reported by: nahuelgreco
Patches:
      sip-early-media-recording-1.4.22.patch uploaded by nahuelgreco (license 162)
	  Tested by: putnopvut

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157512 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-18 22:54:08 +00:00
Mark Michelson
2ede9a603f Based on Russell's advice on the asterisk-dev list, I have
changed from using a global lock in update_call_counter to
using the locks within the sip_pvt and sip_peer structures
instead.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157496 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-18 21:59:24 +00:00
Mark Michelson
16efb5c4dd * Add a lock to be used in the update_call_counter function.
* Revert logic to mirror 1.4's in the sense that it will not allow
  the call counter to dip below 0.

These two measures prevent potential races that could cause a SIP peer
to appear to be busy forever.

(closes issue #13668)
Reported by: mjc
Patches:
      hintfix_trunk_rev152649.patch uploaded by wolfelectronic (license 586)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157427 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-18 20:23:58 +00:00
Russell Bryant
1148e648b8 Fix a few more places where the case insensitive hash should be used since
the comparison is case insensitive.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@157041 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-15 04:25:57 +00:00
Mark Michelson
6254c5cd2f Revision 155513 of chan_sip.c in trunk inadvertently
removed a very important line to set the "len" field
for incoming SIP requests. The result was that all incoming
SIP messages appeared to be 0-length, meaning Asterisk
could do no meaningful processing of anything SIP-related



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156962 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-14 21:19:58 +00:00
Michiel van Baak
86f900b201 This commit does two things:
- Add CLI aliases module to asterisk.
- Remove all deprecated CLI commands from the code

Initial work done by file.
Junk-Y and lmadsen did a lot of work and testing to
get the list of deprecated commands into the configuration file.

Deprecated CLI commands are now handled by this new module,
see cli_aliases.conf for more info about that.

ok russellb@ via reviewboard

(closes issue #13735)
Reported by: mvanbaak


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@156120 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-12 06:46:04 +00:00
Russell Bryant
72d5d58069 Remove commentary from the issues list for SIP TCP/TLS
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155929 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-11 16:07:36 +00:00
Sean Bright
48522988ab In order to move away from nested function use, some changes to the recently introduced
ast_channel_search_locked need to be made.  Specifically, the caller needs to be able to
pass arbitrary data which in turn is passed to the callback.  This patch addresses all
of the nested functions currently in asterisk trunk.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155590 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-09 01:59:59 +00:00
Russell Bryant
ef489f8195 - Check for failure when putting the packet in the ast_str
- fix a spelling error in a header file


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155516 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-08 21:46:43 +00:00
Russell Bryant
648ea2aab9 Remove some code that is basically a no-op. Code above this already ensures that
the buffer is terminated.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155513 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-08 21:34:36 +00:00
Mark Michelson
111203aed9 Set the invite state to INV_CANCELLED in a place that
makes more sense. Where it was set before, it was impossible
to actually delay sending a CANCEL if we had not yet received
a provisional response to an INVITE.

(closes issue #13626)
Reported by: atis
Patches:
      13626.patch uploaded by putnopvut (license 60)
Tested by: atis



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155467 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-07 23:41:44 +00:00
Sean Bright
30d1744ffc Add ability to pass arbitrary data to the ao2_callback_fn (called from
ao2_callback and ao2_find).  Currently, passing OBJ_POINTER to either
of these mandates that the passed 'arg' is a hashable object, making
searching for an ao2 object based on outside criteria difficult.

Reviewed by Russell and Mark M. via ReviewBoard:
    http://reviewboard.digium.com/r/36/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155401 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-07 22:39:30 +00:00
Tilghman Lesher
bd3f685f20 Merged revisions 155398 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r155398 | tilghman | 2008-11-07 16:27:32 -0600 (Fri, 07 Nov 2008) | 7 lines
  
  Clarify error message.
  (closes issue #13809)
   Reported by: denke
   Patches: 
         20081104__bug13809.diff.txt uploaded by Corydon76 (license 14)
   Tested by: denke
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155399 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-07 22:28:58 +00:00
Kevin P. Fleming
90e573c373 stringfields conversion for struct sip_peer, as requested :-)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155282 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-07 15:52:05 +00:00
Russell Bryant
41ab61a2a2 Remove a bogus ast_free() that Kevin noticed. This was probably just left over
from pre-astobj2ified chan_sip.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155264 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-07 15:42:04 +00:00
Russell Bryant
1a239454f1 Fix some code in chan_sip that was intended to unlink multiple objects from a
container.  The OBJ_MULTIPLE flag must be provided here.  Otherwise, this would
only remove a single object.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@155241 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-07 14:50:30 +00:00
Sean Bright
086a52d9d1 Introduce a new API call ast_channel_search_locked, which iterates through the
channel list calling a caller-defined callback.  The callback returns non-zero
if a match is found.  This should speed up some of the code that I committed
earlier today in chan_sip (which is also updated by this commit).

Reviewed by russellb and kpfleming via ReviewBoard:
	http://reviewboard.digium.com/r/28/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@154429 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-04 23:23:39 +00:00
Sean Bright
6ba4e7853e Allow devices that accept dialog-info+xml (like snoms) to get the Caller ID of
the calling party when subscribed to the state of an extension that is ringing.
This has some limitations which are documented in sip.conf.sample.

(closes issue #13827)
Reported by: seanbright
Patches:
      issue13827.patch uploaded by seanbright (license 71)
Reviewed by: russellb


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@154187 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-04 17:00:45 +00:00
Olle Johansson
204845843e Adding a separation of remote authentication and our authentication.
remotesecret => our password for a remote service
secret => our authentication when someone calls us

Secret => still has both functions if remotesecret is not used.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153904 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-03 15:16:33 +00:00
Eliel C. Sardanons
105a020b6f Add XML documentation for:
Applications
        - SIPDtmfMode()
        - SIPAddHeader()
     Functions
        - SIP_HEADER()
        - SIPPEER()
        - SIPCHANINFO()
        - CHECKSIPDOMAIN()



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153803 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-03 12:35:05 +00:00
Kevin P. Fleming
bd4eb070f3 bring over all the fixes for the warnings found by gcc 4.3.x from the 1.4 branch, and add the ones needed for all the new code here too
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153616 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-02 18:52:13 +00:00
Russell Bryant
981c2d03b6 Don't ignore the result of find_peer() when looking for a peer by IP in check_peer_ok().
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153403 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-01 23:46:12 +00:00
Russell Bryant
1fef0f63bb Ensure that the sip_pvt properly has its refcount incremented when the scheduler holds
a reference to it for session timer processing.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153362 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-11-01 20:41:38 +00:00
Tilghman Lesher
44b484195e Merged revisions 153114 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r153114 | tilghman | 2008-10-31 11:30:32 -0500 (Fri, 31 Oct 2008) | 3 lines
  
  Turn off qualify on uncached realtime peers.
  (Closes issue #13383)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@153122 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-31 16:35:21 +00:00
Russell Bryant
19f1e7e578 Fix the sip_peer reference count with respect to scheduler entries for
scheduling peer pokes, and scheduling peer poke expirations.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152920 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-30 19:40:15 +00:00
Russell Bryant
46a8b1deed Fix the sip_peer reference count with respect to scheduler entries for
registration expirations.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152915 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-30 19:35:36 +00:00
Mark Michelson
c0b9b259ca I just noticed this construct and thought it was
silly to have a bunch of case statements with duplicated
code in each case. Instead, just use the built-in fallthrough
capability of case statements and reduce the code to
a single instance



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152879 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-30 19:23:16 +00:00
Russell Bryant
3d5b3249a8 Modify the documentation of the sip_registry struct
- Remove a comment that says that the monitor thread is the only one that
   ever touches these objects.  This is no longer the case with TCP.  Also,
   I would eventually like to get the scheduler in its own thread, so this
   is just a poor assumption to make.
 - Note that reference counting of these objects with respect to scheduler
   entries is not complete.  There are some leaked references when deleting
   scheduler entries.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152877 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-30 19:21:53 +00:00
Russell Bryant
0dbd863733 Merged revisions 152539 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r152539 | russell | 2008-10-29 00:23:51 -0500 (Wed, 29 Oct 2008) | 7 lines

Fix an incorrect usage of sizeof()

(closes issue #13795)
Reported by: andrew53
Patches:
	chan_sip_sizeof.patch uploaded by andrew53 (license 519)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152569 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-29 05:34:26 +00:00
Olle Johansson
0fdde26109 Trying to fix the user/peer matching correctly. This will need some testing before
getting merged into 1.6.1


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152020 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-26 10:23:01 +00:00
Olle Johansson
9137733e11 Moving more variables to the sip_cfg structure, as I have some future ideas for the usage of that structure.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@152019 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-26 09:45:17 +00:00
Olle Johansson
31a9f1e6f0 Doxygen changes and some formatting.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151980 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-26 09:19:19 +00:00
Olle Johansson
5aa23add8c Adding a small new feature.
Setting _SIPFROMDOMAIN in a channel will set the domain we use for the URI in the outbound call leg.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151739 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-23 15:30:16 +00:00
BJ Weschke
d7422c975e revert the changes in issue #13705 - it's being re-opened as while the results fixed the complaint in the issue, it introduced other more undesirable issues than what was already reported
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151642 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-22 20:45:03 +00:00
Russell Bryant
89e0def9f9 Print out the right var in the log message
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151555 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-22 17:45:05 +00:00
Russell Bryant
ca14f718d7 Fix this check to use the proper variable (the result from get_in_brackets)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151554 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-22 17:44:05 +00:00
Mark Michelson
cfa9531311 The logic of a strncasecmp call was reversed.
(closes issue #13706)
Reported by: andrew53
Patches:
      sip_notify_from_rfc3265.patch uploaded by andrew53 (license 519)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151512 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-22 15:08:25 +00:00
Mark Michelson
97dac2d91a Make the sip_standard_port function more granular by allowing separate
type and port arguments. This is necessary because when building our From
and Contact headers, we need to be absolutely sure that we are placing our
source port there and not the peer's source port.

(closes issue #12761)
Reported by: asbestoshead
Patches:
      patch-chan-sip-contact-port.txt uploaded by asbestoshead (license 455)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-21 23:54:41 +00:00
Mark Michelson
f4561c0e46 Get this compiling in dev-mode
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151439 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-21 23:31:17 +00:00
Mark Michelson
2c55dcf8a8 If a peer uses any transport other than UDP, then MWI will
fail for that peer since sip_alloc will allocate a sip_pvt with
a default transport of UDP. This change resets the socket type
immediately after allocating the sip_pvt in sip_send_mwi_from_peer,
so that the proceeding call to create_addr_from_peer does not fail
right away. The socket data from the peer is properly copied to
the sip_pvt in create_addr_from_peer.

(closes issue #13710)
Reported by: andrew53
Patches:
      sip_notify_use_tcp.patch uploaded by andrew53 (license 519)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151428 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-21 23:27:45 +00:00
Mark Michelson
bceb0845e6 When attempting to resolve hostnames, we need to be sure
to remove any parameters from the string so that name
resolution succeeds.

(closes issue #13727)
Reported by: fnordian
Patches:
      resolvewithouturiparameter.patch uploaded by fnordian (license 110)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151420 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-21 23:08:56 +00:00
BJ Weschke
5a6a59c84b Fix configuration parsing so type=friend still identifies "friend" as a peer even though it is now a legacy configuration verb.
(closes issue #13705)
 reported by: blitzrage
 patched by: bweschke



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151327 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-21 11:02:08 +00:00
Kevin P. Fleming
1ddc834b39 cleaup of the TCP/TLS socket API:
1) rename 'struct server_args' to 'struct ast_tcptls_session_args', to follow coding guidelines

2) make ast_make_file_from_fd() static and rename it to something that indicates what it really is for (again coding guidelines)

3) rename address variables inside 'struct ast_tcptls_session_args' to be more descriptive (dare i say it... coding guidelines)

4) change ast_tcptls_client_start() to use the new 'remote_address' field of the session args for the destination of the connection, and use the 'local_address' field to bind() the socket to the proper source address, if one is supplied

5) in chan_sip, ensure that we pass in the PP address we are bound to when creating outbound (client) connections, so that our connections will appear from the correct address



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151101 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-19 19:11:28 +00:00
Olle Johansson
235d4159f6 Adding changes from train and flight back home from SIPit23 in Lannion, France.
- Additional comments on TCP/TLS implementation
- Some additions for new drafts/rfcs (no new functionality really, mostly documentation)
- Other random small fixes


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@151019 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-19 07:20:40 +00:00
Olle Johansson
e3ea5c3c36 Adding some additional thoughts on configuration changes to TCP/TLS
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-17 08:42:44 +00:00
Mark Michelson
1b1efebf4b After a long discussion on #asterisk-bugs, it seems kind of
odd that a channel would be named after the originating port. 
For endpoints that always include ":5060" as part
of the From: header, it will mean that you have a ton of
channels with names like "SIP/5060-3ea38a8b."

I am boldly moving forward with this change in trunk, but I'm
not touching other branches with this one since this definitely
would qualify as a behavior change. If there is a problem with
this commit, and I haven't seen the obvious reason why you'd want
to name the channel after the port from which the call originated,
then please feel free to revert this



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150307 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-17 00:13:35 +00:00
Mark Michelson
4d983e34cf INVITES with proxy auth were sent with a different branch
than what was in the invite_branch of a sip_pvt, meaning
that if a CANCEL were sent later, the branch in the CANCEL
would not match the branch in the latest INVITE sent out, leading
to some endpoints responding to the CANCEL with a 481.

(closes issue #13714)
Reported by: fnordian
Patches:
      invite_branch.patch uploaded by fnordian (license 110)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150207 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-16 20:57:18 +00:00
Kevin P. Fleming
2f3193ec70 ensure that type=peer entries are only matched on IP/port, not on name (after oej audits all the calls to find_peer() to make sure that forcenamematch is set correctly in each case)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-16 15:02:10 +00:00
Olle Johansson
11a94d5b01 Doxygen addition
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@150051 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2008-10-16 15:00:30 +00:00