Commit Graph

53 Commits

Author SHA1 Message Date
Joshua Colp
28dacda047 When going on hold have the side that was put on hold reinvite back to Asterisk. When going off hold have the side that was taken off hold reinvited back to the other party.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@53052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-01 00:24:20 +00:00
Joshua Colp
7229c2ba48 Add more frame types to forward in the RTP bridge loops.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@53050 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-01 00:19:48 +00:00
Russell Bryant
0bc7ef3b06 Merged revisions 53039 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r53039 | russell | 2007-01-31 11:41:51 -0600 (Wed, 31 Jan 2007) | 3 lines

Use the proper format string to print unsigned values in the rtp debug output.
(issue #8954, wmis)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@53040 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-31 17:45:05 +00:00
Russell Bryant
06a3110ed8 Fix a problem with packet-to-packet bridging and DTMF mode translation. P2P
bridging can only be used when the DTMF modes don't match if the core is
monitoring DTMF in both directions.  Then, the core will handle the translation.
Otherwise, this bridging method can not be used.
(issue #8936)


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@52645 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-29 21:26:27 +00:00
Russell Bryant
33235b40d6 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/branches/1.4@51311 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-19 17:49:38 +00:00
Joshua Colp
9461aa0027 Pass data as well for hold/unhold/vidupdate frames. (issue #8840 reported by mdu113)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51211 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-18 00:18:44 +00:00
Joshua Colp
9f0ad6093e Return the correct result when directly writing out a packet so that the core doesn't then decide to handle it the regular way again. (issue #8833 reported by rcourtna)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51182 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-17 06:36:41 +00:00
Jason Parker
1825fc3ee2 Fix issue with dtmf continuation packets when the dtmf digit is 0...
Issue 8831


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51170 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-17 00:20:56 +00:00
Joshua Colp
240ca25bea 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/branches/1.4@50466 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-11 05:19:39 +00:00
Joshua Colp
46700b62af Disable the more intense packet2packet bridging until the bugs can be worked out.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@50032 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-08 18:21:31 +00:00
Joshua Colp
156a6cf5db If the Packet2Packet bridge is being broken because of a masquerade then attempt to read a frame in so the masquerade actually happens. Otherwise weirdness will occur. (issue #8696 reported by kjotte)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49066 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-30 05:46:57 +00:00
Kevin P. Fleming
a299485952 since these variables all have static duration, none of them need initializers (they default to zero anyway)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@49006 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-27 22:06:56 +00:00
Joshua Colp
9cc04e026d 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/branches/1.4@48964 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-26 04:31:58 +00:00
Joshua Colp
8df2c7228f Turn payload_lock into bridge_lock and make it encompass all RTP structure contents that may relate to bridge information, including who we are bridged to.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48506 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 19:55:28 +00:00
Joshua Colp
0995fb8aeb Payload values on the RTP structure can change AFTER a bridge has started. This comes from the packet handling of the SIP response when indication that it was answered has been sent. Therefore we need to protect this data with a lock when we read/write. (issue #8232 reported by tgrman)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48472 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-14 17:36:12 +00:00
Joshua Colp
87a03da072 Remove direct RTCP bridging. I've come to the conclusion that we should handle this through the core and not just forward it on. Should solve a few bugs.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48461 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-14 03:33:30 +00:00
Joshua Colp
c866263f50 Merge in my latest RTP changes. Break out RTP and RTCP callback functions so they no longer share a common one.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48381 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-11 05:36:45 +00:00
Olle Johansson
f89143bd13 - Disable RTP hold timers while T.38 fax transmission happens
- Encapsulate RTP timers in the rtp structure so we have one for video and one for audio
   The video one is not used in 1.4, really. Will be used for RTP keepalives when we can send
   something that video phones support in the RTP stream.
   I now this is a big architectual change at this stage for 1.4, but decided it was needed
   to avoid future bug reports.
- Document the RTP NAT keepalive option in sip.conf.sample

Issue 7679 in the bug tracker. Please test.



git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48199 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-02 11:32:51 +00:00
Joshua Colp
b2b70adede Do not do a partial bridge for Google Talk since we need to handle STUN. (issue #8448 reported by phsultan)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48168 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-30 21:18:24 +00:00
Joshua Colp
558639ff6a Merged revisions 48106 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r48106 | file | 2006-11-29 11:47:10 -0500 (Wed, 29 Nov 2006) | 2 lines

If the frame was duplicated before writing out then we need to free it. (issue #8429 reported by edguy3)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@48107 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-29 16:50:33 +00:00
Joshua Colp
090c412c27 Video will never reach Packet2Packet bridging and can do more harm then good.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-22 21:47:43 +00:00
Joshua Colp
8c0f4c8711 If we have the non standard G726-32 setting turned on we want to return G726-32 to the SDP, not our AAL2 string. (issue #8330 reported by voipgate)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47897 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-21 17:32:27 +00:00
Joshua Colp
b42279c142 Only remove/destroy the RTCP I/O item if it exists.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47852 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-20 15:58:50 +00:00
Joshua Colp
bc6cff37bc If NAT detection is turned on or already detected then say NAT is active when setting the remote RTP peer when doing early bridging. (issue #8365 reported by marcelbarbulescu)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47645 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15 04:45:24 +00:00
Joshua Colp
708b84da2f Turn notice about unknown RTCP packet type into a debug message instead.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47639 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-15 00:14:07 +00:00
Tilghman Lesher
56a1e60c54 More changes making the CLI more consistent with "category verb arguments" (continuation of issue 8236)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@47053 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-02 23:49:13 +00:00
Olle Johansson
e93e64a005 Bind RTCP to the same IP as RTP
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46431 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-30 16:09:05 +00:00
Kevin P. Fleming
6c17f1e07e add passthrough and file format support for G.722 16KHz audio (issue #5084, original patch by andrew, updated by mithraen)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@46154 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-25 00:26:17 +00:00
Joshua Colp
64a875951a Don't segfault if you're using a channel driver that doesn't turn RTCP on
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@45452 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 03:02:08 +00:00
Joshua Colp
faf38b71ef Remove the seqno check for RFC2833, the handler is smart enough to not need it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-06 21:08:54 +00:00
Joshua Colp
2d3da5b500 When the sequence number rolls over then reset the recorded sequence number for DTMF (issue #8106 reported by bungalow)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44605 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-06 18:46:28 +00:00
Paul Cadach
b0bb62a7e5 Allow one-way RTP streams (device->Asterisk)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@44090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-30 19:20:38 +00:00
Joshua Colp
f149686e8b Compensate for out of order packets better if RFC2833 compensation is turned on.
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@43798 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-27 19:10:59 +00:00
Tilghman Lesher
70af28270d Constify the result of a config retrieval function, to avoid mutilation (issue 7983).
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43364 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-20 20:40:39 +00:00
Joshua Colp
3c6d5053ba Totally break a P2P bridge upon going on hold, and re-establish it upon going off hold.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43343 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-20 17:08:44 +00:00
Joshua Colp
659d467720 Expand codec check so that raw formats must be equal for a Packet2Packet bridge to occur
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43340 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-20 16:55:09 +00:00
Matt O'Gorman
465adf2bf1 allow for packetization on rtp channel drivers, need to add
option for setting our own packetization as apposed to just doing 
what is asked.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43243 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 23:32:57 +00:00
Kevin P. Fleming
fcb999c01c merge qwell's CLI verbification work
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43212 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-18 19:54:18 +00:00
Joshua Colp
d2a359e57f Optimize a bit
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42583 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-09 19:12:52 +00:00
Joshua Colp
10e361763c It's another round of RTP updates!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42569 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-09 18:07:59 +00:00
Joshua Colp
f912c9e69f Unbridge the RTP streams at the correct place
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-01 18:57:10 +00:00
Joshua Colp
0be2884d80 If we are doing video and we can't reinvite, then resort to generic bridging instead of Packet2Packet since video isn't supported there yet. (reported by PCadach in #asterisk-bugs)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-09-01 17:54:22 +00:00
Joshua Colp
f2b836ff4f Tweak the DTMF muting stuff a bit to take into account VLDTMF and compensation.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41632 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31 21:00:16 +00:00
Joshua Colp
29ee02bfce Only write a received packet out if we are actually bridged to something
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31 14:46:46 +00:00
Joshua Colp
c6977b9983 Merge in VLDTMF support with Zaptel/Core done by the ever great Darumkilla Russell Bryant and the RTP portion done by myself, Muffinlicious Joshua Colp. This has gone through so many discussions/revisions it's not funny but we finally have it!
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41507 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-31 01:59:02 +00:00
Joshua Colp
0855df6a5a Only feed a DTMF frame into the core if we need to
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30 14:57:06 +00:00
Joshua Colp
245aa1a62d Only switch the second alert fd (which is RTCP) to callback mode if it is in use
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30 03:18:04 +00:00
Joshua Colp
12b6ec4e11 Use an API call (ast_rtp_get_bridged) to return the RTP stream we are bridged to, and also use it in chan_sip so we know to ignore the no RTP activity checking
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41316 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30 03:16:03 +00:00
Joshua Colp
da7d969ae1 If the RTP stack is already being operated in callback mode, then suspend it upon switching to P2P callback bridging. Once P2P callback bridging has ended, then restore callback mode.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41303 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30 01:29:59 +00:00
Joshua Colp
ca33d2ecc6 This is the last round of RTP bridge optimizations. Basically it introduces a way that under a straight bridge (ie: no transcoding and no DTMF detection) the core is not touched at all and no frames pass through (not even null frames). This is accomplished by stealing the file descriptors from the channel and using the provided IO context with a custom callback. When a channel is placed on hold this bridge is broken so audio can flow from the core to the other side. When a channel is off hold this bridge is re-established.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@41302 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-08-30 01:22:46 +00:00