This set of changes introduces TCP and TLS support for chan_sip. There are various
new options in configs/sip.conf.sample that are used to enable these features. Also,
there is a document, doc/siptls.txt that describes some things in more detail.
This code was implemented by Brett Bryant and James Golovich. It was reviewed
by Joshua Colp and myself. A number of other people participated in the testing
of this code, but since it was done outside of the bug tracker, I do not have their
names. If you were one of them, thanks a lot for the help!
(closes issue #4903, but with completely different code that what exists there.)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@99085 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This set of changes introduces SIP session timers support (RFC 4028). In short,
this prevents stuck SIP sessions that were not properly torn down due to network
or endpoint failures during an established SIP session.
To quote some of the documentation supplied with the patch:
"The SIP Session-Timers is an extension of the SIP protocol that allows end-points and proxies to
refresh a session periodically. The sessions are kept alive by sending a RE-INVITE or UPDATE
request at a negotiated interval. If a session refresh fails then all the entities that support Session-
Timers clear their internal session state. In addition, UAs generate a BYE request in order to clear
the state in the proxies and the remote UA (this is done for the benefit of SIP entities in the path
that do not support Session-Timers)."
(closes issue #10665)
Reported by: rjain
Patches:
chan_sip.c.1.diff uploaded by rjain (license 226)
chan_sip.c.diff uploaded by rjain (license 226)
sip.conf.sample.diff uploaded by rjain (license 226)
proc_422_rsp_comment.diff uploaded by rjain (license 226)
chan_sip.c.cache.diff uploaded by rjain (license 226)
chan_sip.memalloc uploaded by rjain (license 226)
chan_sip.memalloc.bugfix uploaded by rjain (license 226)
Patches tracked in team/group/sip_session_timers, with some additional fixes
by russell and oej.
Tested by: jtodd, rjain, loloski
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98978 65c4cc65-6c06-0410-ace0-fbb531ad65f3
to set the qualify frequency.
(closes issue #11597)
Reported by: wilder
Patches:
qualifyfreq5.patch uploaded by wilder (license 362)
-- with some mods by me
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@98027 65c4cc65-6c06-0410-ace0-fbb531ad65f3
by adding an exclamation mark to the dial string.
This patch also exists for 1.4 in the fixtoheader-1.4 branch
and has been in production for quite some time.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@93897 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- Refer to the proper documentation
- Implement separate signalling/media QoS/CoS in many channels using RTP
- Improve warnings and verbose messages
- Deprecate some old settings
Minor modifications by me, a big effort from IgorG.
Thanks!
Reported by: IgorG
Patches:
qoscleanup-89394-4-trunk.patch uploaded by IgorG (license 20)
Tested by: IgorG
(closes issue #11145)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@93163 65c4cc65-6c06-0410-ace0-fbb531ad65f3
and we now have the groupcount system to implement call-limits in the dialplan. You
can use the "setvar" option in realtime/sip.conf to set limits per device.
- Implement "callcounter" as a new option to enable the call counting we need to
report device status to queue, manager and SIP subscriptions.
The call counter setting is now enabled in the code by setting the device call-limit
to 999. When we remove the call limit, we can simply enable this with a boolean
setting.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89554 65c4cc65-6c06-0410-ace0-fbb531ad65f3
way of handling DTMF in SIP. Totally undocumented, but implemented
in enough devices so we have to support it.
Code by sergee, small changes by oej.
Closes issue #11049
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89278 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
+ 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
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
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
........
r58779 | file | 2007-03-11 20:51:16 -0400 (Sun, 11 Mar 2007) | 2 lines
Add matchexterniplocally setting which only substitutes your externip/externhost setting if it matches the localnet setting. I know of at least two people who need opposite settings, so I made it an option! (issue #8821 reported by kokoskarokoska)
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@58780 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
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
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
- 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
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
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
They are highly convenient for writing configuration files, especially
if you have many similar entries, or want to switch quickly between
different configurations without having to comment/uncomment large
sections of the files.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44579 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1. slightly rearrange/simplify the parsing of the argument in sip_register.
This brings in a patch that has been in Mantis (5834) for ages,
and is the larger part of the commit;
2. implement the "contact" option for peers, similar to the one in users.conf:
If you put a "contact" option with a non-empty argument (e.g. contact=123)
in a peer section, asterisk will register with the provider as if you had a
register= username:secret@host/contact
line in the general section.
The latter is a very small is a new feature so i am not putting it
in the 1.4 branch, although the "contact" option in user.conf is
already in the 1.4 branch and so it wouldn't be too strange to
merge it.
Note that the implementation of "contact" is much simpler than
the one in 5834, and limited to a few lines in build_peer().
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@44566 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Technically, ooh323 doesn't support it yet, but there is a patch that should be committed very soon.
Issue #7989, patch by DEA, slightly modified.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43344 65c4cc65-6c06-0410-ace0-fbb531ad65f3
be seen in the code. Did it exist, was it planned to exist
or was it documentationware only? Ask Dr Asterisk.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@37324 65c4cc65-6c06-0410-ace0-fbb531ad65f3
and mgcp channels
- remove the jitterbuffer configuration from the pvt structures in
the sip, zap, and skinny channel drivers, as copying the same global
configuration into each pvt structure has no benefit.
- update and fix some typos in jitterbuffer related documentation
(issue #7257, north, with additional updates and modifications)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@31413 65c4cc65-6c06-0410-ace0-fbb531ad65f3
a new implementation of a fixed size jitterbuffer, as well as support for the
existing adaptive jitterbuffer implementation. (issue #3854, Slav Klenov)
Thank you very much to Slav Klenov of Securax and all of the people involved
in the testing of this feature for all of your hard work!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@31052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
use an enum for authentication results and clean up code
fix a bug where SUBSCRIBE for an unknown user/peer would not generate a response
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@29903 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- Optionally send systemname in manager (cool when you have a manager proxy)
- Use systemname in CLI prompt
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@26884 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- Enable videosupport per device
- Implement maxcallbitrate setting for video calls
Patch by John Martin, thanks!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15148 65c4cc65-6c06-0410-ace0-fbb531ad65f3
- Implement option for allow/disallow subscriptions
- Implement option for allow/disallow overlap dialling
- Set default to disable overlap dialling in sip.conf.sample for new installations
- Remove overlap dialling from subscription logic
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15107 65c4cc65-6c06-0410-ace0-fbb531ad65f3