[Home]

Summary:ASTERISK-17795: [patch] Monitor files get incorrectly padded during transfer/masq
Reporter:Steve Davies (one47)Labels:patch
Date Opened:2011-05-04 09:01:57Date Closed:
Priority:MajorRegression?No
Status:Open/NewComponents:Resources/res_monitor
Versions:1.6.2.18 13.18.4 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) monitor_resync_during_masq
Description:This is found in 1.6.2.18, but looking at the source in trunk, it probably applies to 1.8.x and to earlier releases, and may even patch cleanly with the supplied patch.

1) Inbound DAHDI call bridged to SIP destination 'A'. Monitor is started on the destination channel 'A' using a Dial macro to files call1-in and call1-out.
2) Put call on hold at 'A'. NOTE: the call1-in monitor file stops growing but the call1-out monitor file continues to grow.
3) Dial new call from 'A' to new SIP destination 'B'. Monitor is started on the destination channel 'A' using a Dial macro to files call2-in and call2-out.
4) SIP REFER: Attended transfer 'B' to DAHDI call, and the monitor objects are correctly swapped during masquerade.
5) Instead of updating the call1-in file with silence, the call2-in file has the missing audio written to it in error.



****** ADDITIONAL INFORMATION ******

Attached is an experimental patch for review.

NOTE: If the REFER transfers DAHDI to 'B' instead of 'B' to DAHDI, the monitor files all work fine. The way a transfer occurs is handset dependent, and not user controlled.

The solution I propose (patch attached) is that when ast_do_masquerade in channel.c swaps the chan->monitor values, it calls a function to re-sync the audio files before doing so.
Comments: