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