Commit Graph

6414 Commits

Author SHA1 Message Date
David Vossel
862ebf4d00 fixes adaptive jitterbuffer configuration
When configuring the adaptive jitterbuffer, the target_extra
value not only could not be set from the configuration, but was
not even being set to its proper default.  This value is required
in order for the adaptive jitterbuffer to work correctly.  To resolve
this a config option has been added to expose this value to the conf
files, and a default value is provided when no config specific value
is present.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249893 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-02 19:08:38 +00:00
Alec L Davis
5dbe86a3c2 fix asterisk setting of pritimers from chan_dahdi.conf
regression since sig_pri split.

(issue #16909)
Reported by: alecdavis
Patches: 
      pritimer.asterisk.diff.txt uploaded by alecdavis (license 585)
Tested by: alecdavis



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249759 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-02 06:56:14 +00:00
Michiel van Baak
3f1d9e881e Cleanup display_*message functions.
This patch splits transmit_displaymessage into transmit_clear_display_message and transmit_display_message which better aligns with the skinny protocol. The new transmit_display_message is not used in the current code, but will be and so it is commented.

Moved handle_datetime from this function to onhook and offhook functions (display now properly cleared at the end of a call on 30VIP).

Removed skinny debug messages from inline code as there's an ast_verb in transmit_clear_display_message. Also, removed commentary that it was a clear display as it is now apparent from the function name.

Split transmit_displaypromptmessage into display and clear.

(closes issue #16878)
Reported by: wedhorn
Patches: 
	skinny-clean02.diff uploaded by wedhorn (license 30)
	skinny-clean03.diff uploaded by wedhorn (license 30)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249670 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-01 19:33:26 +00:00
Michiel van Baak
7a54ee9159 fix endianes issues in chan_skinny
(closes issue #16826)
Reported by: PipoCanaja
Patches: 
      chan_skinny.c_bigendianPatch_20100218.diff uploaded by PipoCanaja (license 994)
Tested by: wedhorn



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249669 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-01 19:27:34 +00:00
Jeff Peeler
acd243ca65 Merged revisions 249536 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r249536 | jpeeler | 2010-03-01 11:02:03 -0600 (Mon, 01 Mar 2010) | 11 lines
  
  Modify queued frames from local channels to not set the other side to up
  
  In this case, attended transfers were broken due to ast_feature_request_and_dial
  detecting the channel being set to up before the answer frame could be read and
  therefore failing to mark the channel as ready. This fix is a regression fix for
  244785, which should continue to work properly as well.
  
  (closes issue #16816)
  Reported by: jamhed
  Tested by: jamhed, corruptor
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249538 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-03-01 17:11:31 +00:00
Alec L Davis
98154867e6 overlap receiving: automatically send CALL PROCEEDING when dialplan starts
Following Q.931 5.2.4
When the user has determined that sufficient call information has been received the 
user shall stop T302 and send CALL PROCEEDING to the network.

Previously timeouts were possible if the dialplan took a long time to issue any
response back to the network.

Verified that our local TELCO also does the same.

(issue #16789)
Reported by: alecdavis
Patches: 
      overlap_receiving_trunk.diff.txt uploaded by alecdavis (license 585)
Tested by: alecdavis



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249320 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-27 22:49:51 +00:00
Kevin P. Fleming
7e2145b9ac Merged revisions 249234 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r249234 | kpfleming | 2010-02-27 09:07:59 -0500 (Sat, 27 Feb 2010) | 1 line
  
  add a reference to the now-published IAX2 RFC
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249235 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-27 14:08:35 +00:00
Mark Michelson
86f0690571 Merged revisions 249100 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r249100 | mmichelson | 2010-02-26 11:04:29 -0600 (Fri, 26 Feb 2010) | 8 lines
  
  For T.38 reINVITEs treat a 606 the same as a 488.
  
  (closes issue #16792)
  Reported by: vrban
  Patches:
        t38_606.patch uploaded by vrban (license 756)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@249101 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-26 17:04:58 +00:00
Tilghman Lesher
ba75980904 Also kill the .i files, or else the build process will not recreate them, when we
change flags.  Fixes a weird symbol problem mmichelson was having in a group branch,
but also applies to trunk.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@248667 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-24 22:44:55 +00:00
David Vossel
6568b06d29 Merged revisions 248396 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r248396 | dvossel | 2010-02-23 10:26:05 -0600 (Tue, 23 Feb 2010) | 9 lines
  
  fixes invite with replaces deadlock
  
  (closes issue #16862)
  Reported by: pwalker
  Patches:
        replaces_deadlock_1.4 uploaded by dvossel (license 671)
  Tested by: pwalker, dvossel
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@248397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-23 16:34:39 +00:00
Mark Michelson
3a422d7796 Move the REF_DEBUG comment higher in the include list.
Uncommenting the REF_DEBUG definition where it was in the source
resulted in only a small part of the astobj2 references being logged
to a file. Moving this up higher in the include list causes all references
to be logged as they should be.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@248347 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-22 20:19:00 +00:00
Michiel van Baak
55d1fcdd02 Cleanup transmit_* functions, part 1
Break transmit_tone into transmit_start_tone and transmit_stop_tone as per the skinny protocol. 

(closes issue #16874)
Reported by: wedhorn
Patches:
      skinny-clean01.diff uploaded by wedhorn (license 30)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@248184 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-21 12:09:53 +00:00
Moises Silva
0d838691bc mfcr2 issue 0016844 - Fix portability bit fields and make mfcr2_immediate_accept work again, reported and patched by korihor
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@248003 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-19 18:38:34 +00:00
David Vossel
fc0cb53aa5 handle_request_invite revise comment, fix coding guideline issues
I'm working with this code right now trying to analyze a deadlock.
This change is just to clean up a few things before I make a more
complex patch.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247915 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-19 17:40:26 +00:00
Richard Mudgett
57ee669d9f Merged revisions 247910 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
  r247910 | rmudgett | 2010-02-19 11:18:49 -0600 (Fri, 19 Feb 2010) | 55 lines
  
  Merged revision 247904 from
  https://origsvn.digium.com/svn/asterisk/be/branches/C.2-...
  
  ..........
  r247904 | rmudgett | 2010-02-19 10:49:44 -0600 (Fri, 19 Feb 2010) | 49 lines
  
  Make chan_misdn DTMF processing consistent with other channel technologies.
  
  The processing of DTMF tones on the receiving side of an ISDN channel is
  inconsistent with the way it is handled in other channels, especially
  DAHDI analog.  This causes DTMF tones sent from an ISDN phone to be
  doubled at the connected party.
  
  We are using the following 2 options of misdn.conf
  1) astdtmf=yes
  2) senddtmf=yes
  
  Option one is necessary because the asterisk DSP DTMF detection is better
  than mISDN's internal DSP.  Not as many false positives.
  
  Option two is necessary to transmit DTMF tones end to end when mISDN
  channels are connected to SIP channels with out of band DTMF for example.
  
  The symptom is that DTMF tones sent by an ISDN phone are doubled on the
  way through asterisk when two mISDN channels are connected with a Local
  channel in between or if it is bridged to an analog channel.
  
  The doubling of DTMF tones is because DTMF is passed inband to asterisk by
  the mISDN channel and passed out of band once again after the release of
  the DTMF tone.  Passing it inband is wrong.  Neither an analog channel nor
  SIP channel passes DTMF inband if configured to inband DTMF.  Analog and
  SIP channels filter out the DTMF tones because they use the voice frames
  returned by ast_dsp_process.  But chan_misdn passes the unfiltered input
  voice frames instead.
  
  To overcome one aspect of the problem, the doubling of DTMF tones when two
  mISDN channels are directly bridged, someone made an 'optimization', where
  in that case the DTMF tone passed out-of-band to the peer channel is not
  translated to an inband tone at the transmit side.  This optimization is
  bad because it does not work in general.  For example, analog channels or
  mISDN channels when bridged through an intermediary local channel will
  generate DTMF tones from out-of-band information.  Also, of course, it
  must not be done when there is no inband DTMF available.
  
  This patch fixes the issue.  Now chan_misdn will filter the received
  inband DTMF signal the same as other channel types.
  
  Another change included: No need to build an extra translation path
  because ast_process_dsp does it if required.
  
  Patches:
  	misdn-dtmf.patch
  
  JIRA ABE-2080
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247914 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-19 17:33:33 +00:00
Tilghman Lesher
6fb7e0ece7 If the peer record is from realtime, it could be set to 0, due to MySQL not representing NULL well in integer columns.
NULL means the value is not specified for the column, which normally means
the driver uses whatever is the default value.  However, on MySQL, placing
a NULL in either a float or integer column results in a retrieval of the 0
value.  Hence, users get an errant error on load.  This patch suppresses
that error and makes the value as if it was not there.

Note that this cannot be done in the realtime driver, because the lack of
difference between NULL and 0 can only be intepreted correctly by the
driver itself.  If we did it in the realtime driver, then it would be
effectively impossible to set any realtime field to 0, because it would act
as if the field were unspecified and possibly take on a different value.

(closes issue #16683)
 Reported by: wdoekes


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247787 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-18 21:42:53 +00:00
Tilghman Lesher
e7a5fb5459 Make all of the various rtpqos parameters in this branch available from the CHANNEL function.
Also includes a test for retrieving rtpqos parameters, including a NULL RTP
driver.  Additionally, some further separation of the SIP internal API into
headers was necessary.

(closes issue #16652)
 Reported by: kkm
 Patches: 
       20100204__issue16652.diff.txt uploaded by tilghman (license 14)
 
Review: https://reviewboard.asterisk.org/r/501/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247124 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-17 06:25:15 +00:00
Tilghman Lesher
22b144cef4 Change the blanket rules to delete .lastclean on all CFLAGS menuselect targets to be more particular.
This change builds upon the recent change to menuselect to add 'touch_on_change'
as an attribute of both categories and members.  This should allow only the most
invasive defines to cause a complete rebuild, while defines which only affect a
subset of modules will only cause a rebuild of that smaller set.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246789 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-16 00:52:45 +00:00
Tilghman Lesher
b26b519159 Allow Timer B to be set on the peer, and ensure SIP rules are followed (or warn) in comparison to Timer T1.
(closes issue #16643)
 Reported by: nahuelgreco
 Patches: 
       20100204__issue16643.diff.txt uploaded by tilghman (license 14)
 Tested by: oej


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246724 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-16 00:19:38 +00:00
Richard Mudgett
b2a1ad7946 Restore triedtopribridge flag code removed in -r211197.
Ooops.  Failed to note that we were inside a for loop and
pri_channel_bridge() needs to be executed only once.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246669 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-15 22:08:23 +00:00
David Vossel
2003243947 chan_sip parse code refactoring plus two new unit tests
Code Refactoring Changes
- read_to_parts() moved to reqresp_parser.c and has been renamed as
  get_name_and_number()
- get_in_brackets() moved to reqresp_parser.c
- find_closing_quotes() added to sip_utils.h
Logic Changes
- get_name_and_number() now uses parse_uri() and get_calleridname()
  for parsing. Before this change only names within quotes were
  found, when names not within quotes are possible.
New Unit Tests
-sip_get_name_and_number_test
-sip_get_in_brackets_test

(closes issue #16707)
Reported by: Nick_Lewis
Patches:
      issue16706.diff uploaded by dvossel (license 671)

Review: https://reviewboard.asterisk.org/r/499/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246627 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-15 15:45:02 +00:00
David Vossel
72dcd51cc8 fixes areas where port should be removed from domain during parsing
A patch was committed recently that converted duplicate uri parsing
code to use the parse_uri function.  There were two instances where
this conversion did not mimic previous behavior exactly because the
port was not being parsed off the end of the domain. In order to do
this, a dummy pointer argument needs to be passed into parse_uri so
it will know it must parse out the port from the domain.  If a port
output paramenter is not present,   the domain is returned with the
port still attached.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246420 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-12 17:59:39 +00:00
David Vossel
6d9c531237 fixes some test description formatting inconsistencies so log file looks nice
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-11 21:57:37 +00:00
David Vossel
f57e5150e5 additional parse_uri test and documentation
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246249 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-10 23:13:49 +00:00
Jeff Peeler
556260ad93 Change channel state on local channels for busy,answer,ring.
Previously local channels channel state never changed. This became problematic
when the state of the other side of the local channel was lost, for example
during a masquerade. Changing the state of the local channel allows for the
scenario to be detected when the channel state is set to ringing, but the peer
isn't ringing. The specific problem scenario is described in 164201. Although
this was noted on one of the issues, here is the tested dialplan verified to
work:

exten => 9700,1,Dial(Local/*9700@default&Local/0009700@default)

exten => *9700,1,Set(GLOBAL(TESTCHAN)=${CHANNEL:0:${MATH(${LEN(${CHANNEL})}-1):0:2}}1)
exten => *9700,n,wait(3) ;3 works, 1 did not
exten => *9700,n,Dial(SIP/5001)

exten => 0009700,1,Wait(1) ;1 works, 3 did not
exten => 0009700,n,ChannelRedirect(${TESTCHAN},parkedcalls,701,1)

(closes issue #14992)
Reported by: davidw


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@246070 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-10 16:47:37 +00:00
Russell Bryant
bbed34f764 Various updates to the unit test API.
1) It occurred to me that the difference in usage between the error ast_str and
the ast_test_update_status() usage has turned out to be a bit ambiguous in
practice.  In a lot of cases, the same message was being sent to both.
In other cases, it was only sent to one or the other.  My opinion now is that
in every case, I think it makes sense to do both; we should output it to the
CLI as well as save it off for logging purposes.

This change results in most of the changes in this diff, since it required
changes to all existing unit tests.  It also allowed for some simplifications
of unit test API implementation code.

2) Update ast_test_status_update() to include the file, function, and line
number for the code providing the update.

3) There are some formatting tweaks here and there.  Hopefully they aren't too
distracting for code review purposes.  Reviewboard's diff viewer seems to do a
pretty good job of pointing out when something is a whitespace change.

4) I moved the md5_test and sha1_test into the test_utils module.  It seemed
like a better approach since these tests are so tiny.

5) I changed the number of nodes used in heap_test_2 from 1 million to
100 thousand.  The only reason for this was to reduce the time it took
for this test to run.

6) Remove an unused function prototype that was at the bottom of utils.h.

7) Simplify test_insert() using the LIST_INSERT_SORTALPHA() macro.  The one
minor difference in behavior is that it no longer checks for a test registered
with the same name.

8) Expand the code in test_alloc() to provide specific error messages for each
failure case, to clearly inform developers if they forget to set the name,
summary, description, etc.

9) Tweak the output of the "test show registered" CLI command.  I swapped the
name and category to have the category first.  It seemed more natural since
that is the sort key.

10) Don't output the status ast_str in the "test show results" CLI command.
This is going to tend to be pretty verbose, so just leave that for the
detailed test logs (test generate results).

Review: https://reviewboard.asterisk.org/r/493/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-09 23:32:14 +00:00
David Vossel
dd48c7eb40 fixes a merging error for the iaxs and iaxsl off by one fix
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245804 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-09 23:18:58 +00:00
David Vossel
5be3d14c11 Merged revisions 245792 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r245792 | dvossel | 2010-02-09 16:55:38 -0600 (Tue, 09 Feb 2010) | 12 lines
  
  Fixes iaxs and iaxsl size off by one issue.
  
  2^15 = 32768 which is the maximum allowed iax2 callnumber.
  Creating the iaxs and iaxsl array of size 32768 means the maximum
  callnumber is actually out of bounds.  This causes a nasty crash.
  
  (closes issue #15997)
  Reported by: exarv
  Patches:
        iax_fix.diff uploaded by dvossel (license 671)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245793 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-09 23:07:17 +00:00
Matthew Nicholson
f935799e51 This commit removes an extra newline in T.38 generated SDP packets. This bug was caused by the fix introduced in r243860.
(closes issue #16766)
Reported by: raivisr
Patches:
      t38-sdp-newline-fix1.diff uploaded by mnicholson (license 96)
Tested by: raivisr


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-09 17:40:04 +00:00
Russell Bryant
e9184b8dbe Remove object files from the channels/sip/ directory on make clean.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245597 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-08 23:20:43 +00:00
Tilghman Lesher
2b01c7b185 Actually use _ASTLDFLAGS in the main/ and channels/ Makefiles.
They were previously passed correctly, but they simply weren't used.  This
caused issues with various platforms whose builds needed to pass special
linker flags via the configure script.

(closes issue #16596)
 Reported by: pprindeville
 Patches: 
       asterisk-1.6-astldflags.patch uploaded by pprindeville (license 347)
 Tested by: tilghman


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245578 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-08 22:31:40 +00:00
Russell Bryant
96f382fb60 Make chan_usbradio compile.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245382 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-08 04:31:03 +00:00
Russell Bryant
f199367b93 Tweak formatting and add minor updates to some comments.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245269 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-07 20:57:42 +00:00
Mark Michelson
a1ac799b58 Remove parsing of constantssrc from reload_config.
This config option is already handled by the function handle_common_options
and it is unnecessary to parse the value again.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245230 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-07 19:51:54 +00:00
Mark Michelson
38cb3e2ac9 Remove useless sip options related to hash table size.
First off, these options weren't actually doing anything.
By the time the options were parsed, the peer and dialog
containers had already been allocated with their default
values.

Second, hash table size is something that doesn't really
make sense to change in a config file. If a user is that
interested in changing the hashtable size, he can modify
the source itself.

I have removed the parsing of the hash_peer, hash_user,
and hash_dialog options. I have removed the hash_user_size
variable altogether since it is not used at all. I also
changed hash_peer_size and hash_dialog_size to be constant,
and have changed the symbols to be in all caps as constants
typically are. I have also removed the entire section in
sip.conf.sample regarding configurable hashtable sizes.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245192 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-06 14:43:03 +00:00
David Vossel
a97e8f3908 adds total call numbers available to 'iax2 show callnumber usage' cli output
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@245006 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-05 18:12:41 +00:00
David Vossel
1810f1efff fixes issue with sip registry not having correct default expiry
default expiry was not being set correctly for a registry object.
Thanks to ebroad for reporting the issue and testing the patch.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@244924 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-05 16:59:06 +00:00
David Vossel
f30de5ef0e parse_moved_contact tries to parse contact_name twice
parse_moved_contact attempts to remove a quoted string
twice, and the first try wasn't even being done correctly.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@244769 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-04 23:16:30 +00:00
David Vossel
a9932363a9 -----Changes -----
New files
- channels/sip/sip.h – A new header for shared #define, enum, and struct
  definitions.
- channels/sip/include/sip_utils.h – sip util functions shared among
  the all the sip APIs
- channels/sip/include/config_parser.h – sip config-parser API
- channels/sip/config_parser.c  – Contains sip.conf parsing helper functions
  with unit tests.
- channels/sip/include/reqresp_parser.h – sip request response parser API
- channels/sip/reqresp_parser.c – Contains sip request and response parsing
  helper functions with unit tests.

New Unit Tests 
- sip_parse_uri_test
- sip_parse_host_test
- sip_parse_register_line_test

Code Refactoring
- All reusable #define, enum, and struct definitions were moved out of chan_sip.c
  into sip.h. During this process formatting changes were made to comments
  in both sip.h and chan_sip.c in order to better adhere to the coding guidelines.
- The beginnings of three new sip APIs, sip-utils.h, config-parser.h,
  reqresp-parser.h using existing chan_sip.c functions.
- parse_uri() and get_calleridname() were moved from chan_sip.c to request-parser.c
  along with unit tests for both functions.
- sip_parse_host() and sip_parse_register_line() were moved from chan_sip.c to
  config-parser.c along with unit tests for both functions.

Changes to parse_uri()
-removal of the options parameter.  It was never used and did not behave correctly.
-additional check for [?header] field. When this field was present, the transport
 type was not being set correctly.

----- Overview -----
This patch is introduced with the hope that unit tests for all our sip parsing
functions will be written soon.  chan_sip is a huge file, and with the addition of
each unit test chan_sip is going to grow larger and harder to maintain.  I'm proposing
we begin refactoring chan_sip, starting with the parsing functions.  With each parsing
function we move into a separate helper file, a unit test should accompany it.  I've 
attempted to lay down the ground work for this change by creating two new parser
helper files (config-parser.c and reqresp-parser.c) and moving all shared structs,
enums, and defines from chan_sip.c into a shared sip.h file.  We can't verify everything
in Asterisk using unit tests, but string parsing is one area where unit tests make
the most sense.  By beginning to restructure the code in this way, chan_sip not only
becomes less bloated, but Asterisk as a whole will become more stable.


Review: https://reviewboard.asterisk.org/r/477/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@244597 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-03 20:33:32 +00:00
Tilghman Lesher
d3ae695204 The chanvar= setting should inherit the entire list of variables, not just the first one.
(closes issue #16359)
 Reported by: raarts
 Patches: 
       dahdi-setvars.diff uploaded by raarts (license 937)
 Tested by: raarts


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@244505 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-03 18:34:29 +00:00
David Vossel
36bbf8f902 fixes crash during T.38 negotiation caused by invalid or missing FaxMaxDatagram field
AST-2010-001

(closes issue #16634)
Reported by: krn

(closes issue #16724)
Reported by: barthpbx

(closes issue #16517)
Reported by: bklang

(closes issue #16485)
Reported by: elsto




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@244443 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-02 22:27:23 +00:00
Tilghman Lesher
72c1b76038 Merged revisions 244070 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r244070 | tilghman | 2010-02-01 11:46:31 -0600 (Mon, 01 Feb 2010) | 16 lines
  
  Revert previous chan_local fix (r236981) and fix instead by destroying expired frames in the queue.
  
  (closes issue #16525)
   Reported by: kobaz
   Patches: 
         20100126__issue16525.diff.txt uploaded by tilghman (license 14)
         20100129__issue16525__1.6.0.diff.txt uploaded by tilghman (license 14)
   Tested by: kobaz, atis
  
  (closes issue #16581)
   Reported by: ZX81
  
  (closes issue #16681)
   Reported by: alexr1
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@244071 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-02-01 17:53:39 +00:00
Tilghman Lesher
397ec33284 Informational message, not an error.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@243943 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-28 20:00:09 +00:00
Russell Bryant
5766b06ad4 Add a missing line terminator for T.38 SDP.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@243860 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-28 18:35:15 +00:00
Russell Bryant
9ae1efe42c Merged revisions 243779 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r243779 | russell | 2010-01-28 09:03:17 -0600 (Thu, 28 Jan 2010) | 2 lines
  
  Fix a bogus third argument to ast_copy_string().
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@243780 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-28 15:07:23 +00:00
Russell Bryant
34317fb0d3 Fix the ability to specify an OSP token for an outbound IAX2 call.
When this patch was originally submitted, the code allowed for the token to be
set via a channel variable.  I decided that a cleaner approach would be to
integrate it into the CHANNEL() function.  Unfortunately, that is not a suitable
approach.  It's not possible to get the value set on the channel soon enough
using that method.  So, go back to the simple channel variable method.

(closes issue #16711)
Reported by: homesick
Patches:
      iax-svn.diff uploaded by homesick (license 91)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@243482 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-27 17:32:07 +00:00
David Vossel
d16b89be17 RFC compliant uri and display-name encode/decode
1.  URI Encoding
This patch changes ast_uri_encode()'s behavior when doreserved is enabled.
Previously when doreserved was enabled only a small set of reserved
characters were encoded.  This set was comprised primarily of the reserved
characters defined in RFC3261 section 25.1, but contained other characters as
well.  Rather than only escaping the reserved set, doreserved now escapes
all characters not within the unreserved set as defined by RFC 3261 and
RFC 2396.  Also, the 'doreserved' variable has been renamed to 'do_special_char'
in attempts to avoid confusion.

When doreserve is not enabled, the previous logic of only encoding the
characters <= 0X1F and > 0X7f remains, except for the '%' character, which
must always be encoded as it signifies a HEX escaped character during the decode
process.

2. URI Decoding: Break up URI before decode.
In chan_sip.c ast_uri_decode is called on the entire URI instead of it's
individual parts after it is parsed.  This is not good as ast_uri_decode
can introduce special characters back into the URI which can mess up parsing.
This patch resolves this by not decoding a URI until parsing is completely
done.  There are many instances where we check to see if pedantic checking
is enabled before we decode a URI.  In these cases a new macro,
SIP_PEDANTIC_DECODE, is used on the individual parsed segments of the URI
rather than constantly putting if (pedantic) { decode() } checks everywhere
in the code.  In the areas where ast_uri_decode is not dependent upon
pedantic checking this macro is not used, but decoding is still moved to
each individual part of the URI.  The only behavior that should change from
this patch is the time at which decoding occurs.

Since I had to look over every place URI parsing occurs to create this
patch, I found several places where we use duplicate code for parsing.
To consolidate the code, those areas have updated to use the parse_uri()
function where possible.

3. SIP display-name decoding according to RFC3261 section 25.
To properly decode the display-name portion of a FROM header, chan_sip's
get_calleridname() function required a complete re-write.  More information
about this change can be found in the comments at the beginning of this function.

4. Unit Tests.
Unit tests for ast_uri_encode, ast_uri_decode, and get_calleridname() have been
written.  This involved the addition of the test_utils.c file for testing the
utils api.

(closes issue #16299)
Reported by: wdoekes
Patches:
      astsvn-16299-get_calleridname.diff uploaded by wdoekes (license 717)
      get_calleridname_rewrite.diff uploaded by dvossel (license 671)
Tested by: wdoekes, dvossel, Nick_Lewis

Review: https://reviewboard.asterisk.org/r/469/



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@243200 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-26 16:30:08 +00:00
Olle Johansson
64b76fa41a Merged revisions 242226 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r242226 | oej | 2010-01-22 10:19:30 +0100 (Fre, 22 Jan 2010) | 3 lines

Initialize notify_types to NULL


........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@242227 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-22 09:28:34 +00:00
Tilghman Lesher
04aa8b1149 Formats are inconsistent between even 32-bit and 64-bit Linux. Use casts to ensure both compile.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@241896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-21 15:14:55 +00:00
Kevin P. Fleming
237f57cafe Fix up compile breakage from ast_tvdiff_ms() API change.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@241503 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2010-01-20 13:01:00 +00:00