[Home]

Summary:ASTERISK-15379: [patch] Cannot spy on channel when a local channel is involved
Reporter:Mark Murawski (kobaz)Labels:
Date Opened:2009-12-29 13:41:36.000-0600Date Closed:2010-02-03 14:08:08.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_chanspy
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) 20100126__issue16525.diff.txt
( 1) 20100129__issue16525__1.6.0.diff.txt
Description:> originate local/1000@mychan extension 1234@dial_dus

   -- Executing [1000@mychan:1] Answer("Local/1000@mychan-93af;2", "") in new stack
   -- Executing [1234@dial_dus:1] Dial("Local/1000@mychan-93af;1", "SIP/3007,30,rM(callee-pickup)") in new stack
 == Using SIP RTP CoS mark 5
   -- Called 3007LI>
   -- SIP/3007-00000020 is ringing
   -- Executing [1000@mychan:2] MeetMe("Local/1000@mychan-93af;2", "1000,dq") in new stack
   -- Created MeetMe conference 1023 for conference '1000'


extend context services {
 1 => {
   ChanSpy(SIP/3007,Wq);
 }
}

SIP/3030 dials 1@services

   -- Executing [1@_cos_internal+local+ld+intl:1] ChanSpy("SIP/3030-00000021", "SIP/3007,Wq") in new stack
 == Spying on channel SIP/3007-00000020
[Dec 29 14:40:31] NOTICE[1930]: app_chanspy.c:245 start_spying: Attaching SIP/3030-00000021 to SIP/3007-00000020
[Dec 29 14:40:31] NOTICE[1930]: app_chanspy.c:245 start_spying: Attaching SIP/3030-00000021 to SIP/3007-00000020

SIP/3030 cannot whisper to SIP/3007

If you take out the usage of a local channel. chanspy whisper works fine
Comments:By: Mark Murawski (kobaz) 2009-12-29 13:58:11.000-0600

CLI is actually the following (i missed a line when copying)

   -- Called 3007LI>
   -- SIP/3007-00000020 is ringing
   -- Executing [1000@mychan:1] Answer("Local/1000@mychan-93af;2", "") in new stack
   -- Executing [1000@mychan:2] MeetMe("Local/1000@mychan-93af;2", "1000,dq") in new stack
   -- Created MeetMe conference 1023 for conference '1000'

By: Tilghman Lesher (tilghman) 2010-01-19 13:26:20.000-0600

I just tried out your scenario and it works perfectly fine.

Callfile:
Channel: Local/103@qqq
Callerid: 2487305
Context: qqq
Extension: s
MaxRetries: 1
Retrytime: 10
WaitTime: 60
Priority: 1

Dialplan:
[qqq]
exten => 103,1,Answer
exten => 103,n,MeetMe(1000,dq)
exten => s,1,Dial(SIP/vidphone)
[default]
exten => 8160,1,ChanSpy(SIP/vidphone,Wq)

By: Tilghman Lesher (tilghman) 2010-01-19 13:29:21.000-0600

Also tried with the originate command:
originate local/103@qqq extension s@qqq

Same results; works fine.

By: Mark Murawski (kobaz) 2010-01-19 13:42:55.000-0600

Hmm, It definitely doesn't work here. It may have something to do with a lack of audio frames that I've been seeing.

By: Mark Murawski (kobaz) 2010-01-19 14:29:59.000-0600

I set the wrong version.  This is SVN 1.6.0 rev 240716

Dial(Local) seems to work actually... maybe I pasted the wrong output.
Dial(Local/n) is problematic (it works in 1.6.0.20, but not svn 1.6.0)

By: Mark Murawski (kobaz) 2010-01-19 14:34:13.000-0600

context dialphone {
 1 => {
   Answer();
   Dial(SIP/201);
 }
}

context dialmeetme {
 1 => {
   MeetMe(1000,dq);
 }
}

// incoming calls are prefixed with: 26
//
context trunkhandler_from-branch {
 261 => {
   ChanSpy(SIP/201,Wq);
 }
}

originate Local/1@dialphone/n extension 1@dialmeetme

   -- Executing [261@trunkhandler_from-branch:1] ChanSpy("IAX2/branch-130", "SIP/201,Wq") in new stack
 == Spying on channel SIP/201-00000002
[Jan 19 15:30:37] NOTICE[1507]: app_chanspy.c:245 start_spying: Attaching IAX2/branch-130 to SIP/201-00000002
[Jan 19 15:30:37] NOTICE[1507]: app_chanspy.c:245 start_spying: Attaching IAX2/branch-130 to SIP/201-00000002


It also seems like there is a deadlock.
IAX2/branch-130 hangs up here (the device that dialed 261)

-demo1*CLI> core show channels
Channel              Location             State   Application(Data)
IAX2/branch-160      261@trunkhandler_fro Up      ChanSpy(SIP/201,Wq)
SIP/201-00000002     (None)               Up      AppDial((Outgoing Line))
Local/1@dialphone-da 1@dialphone:2        Up      Dial(SIP/201)
Local/1@dialphone-da 1@dialphone:1        Down    (None)

By: Mark Murawski (kobaz) 2010-01-19 14:36:42.000-0600

Blah... shoot me for rushing my comments.

After the physical device IAX2/branch-130 hangs up, it still shows up in the channel list.

demo1*CLI> core show channels
Channel Location State Application(Data)
IAX2/branch-130 261@trunkhandler_fro Up ChanSpy(SIP/201,Wq)
SIP/201-00000002 (None) Up AppDial((Outgoing Line))
Local/1@dialphone-da 1@dialphone:2 Up Dial(SIP/201)
Local/1@dialphone-da 1@dialphone:1 Down (None)

Remind me to paste the right outputs :P

By: Tilghman Lesher (tilghman) 2010-01-28 17:03:12.000-0600

Patch has been uploaded that may affect your situation.  Please test and verify whether it fixes your problem.

By: Mark Murawski (kobaz) 2010-01-29 16:46:40.000-0600

I applied this patch to 1.6.0 rev 240716.
I also tried applying the patch to what you appear to have been working on, rev 243115 of 1.6.0.

And I get this.

  [CC] channel.c -> channel.o
channel.c:1042:53: error: macro "AST_LIST_REMOVE_CURRENT" passed 2 arguments, but takes just 1
channel.c: In function '__ast_queue_frame':
channel.c:1042: error: 'AST_LIST_REMOVE_CURRENT' undeclared (first use in this function)
channel.c:1042: error: (Each undeclared identifier is reported only once
channel.c:1042: error: for each function it appears in.)

By: Tilghman Lesher (tilghman) 2010-01-29 20:42:43.000-0600

Oops, sorry.  That patch is against 1.4.  I just uploaded a patch that should apply against 1.6.0.

To clarify, we always check issues as to where they may also occur and try to patch the earliest maintained release branch, so that a fix goes in across the board.  Sometimes the APIs differ slightly, and this was one of those cases.



By: Atis Lezdins (atis) 2010-02-01 08:39:23.000-0600

Patch fixes issues ASTERISK-13804 and ASTERISK-15497

By: Mark Murawski (kobaz) 2010-02-01 09:25:33.000-0600

Fixes this problem.  Let's hope it doesn't break anything else :)

By: Mark Murawski (kobaz) 2010-02-01 09:40:45.000-0600

Also fixes 0016628

By: Digium Subversion (svnbot) 2010-02-01 11:46:33.000-0600

Repository: asterisk
Revision: 244070

U   branches/1.4/channels/chan_local.c
U   branches/1.4/main/channel.c

------------------------------------------------------------------------
r244070 | tilghman | 2010-02-01 11:46:32 -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 ASTERISK-15379)
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 ASTERISK-13804)
Reported by: ZX81

(closes issue ASTERISK-15497)
Reported by: alexr1


------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=244070

By: Digium Subversion (svnbot) 2010-02-01 11:53:40.000-0600

Repository: asterisk
Revision: 244071

_U  trunk/
U   trunk/channels/chan_local.c
U   trunk/main/channel.c

------------------------------------------------------------------------
r244071 | tilghman | 2010-02-01 11:53:39 -0600 (Mon, 01 Feb 2010) | 22 lines

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 ASTERISK-15379)
  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 ASTERISK-13804)
  Reported by: ZX81
 
 (closes issue ASTERISK-15497)
  Reported by: alexr1
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=244071

By: Digium Subversion (svnbot) 2010-02-01 11:59:37.000-0600

Repository: asterisk
Revision: 244072

_U  branches/1.6.0/
U   branches/1.6.0/channels/chan_local.c
U   branches/1.6.0/main/channel.c

------------------------------------------------------------------------
r244072 | tilghman | 2010-02-01 11:59:37 -0600 (Mon, 01 Feb 2010) | 29 lines

Merged revisions 244071 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r244071 | tilghman | 2010-02-01 11:53:39 -0600 (Mon, 01 Feb 2010) | 22 lines
 
 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 ASTERISK-15379)
    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 ASTERISK-13804)
    Reported by: ZX81
   
   (closes issue ASTERISK-15497)
    Reported by: alexr1
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=244072

By: Digium Subversion (svnbot) 2010-02-01 12:01:37.000-0600

Repository: asterisk
Revision: 244073

_U  branches/1.6.2/
U   branches/1.6.2/channels/chan_local.c
U   branches/1.6.2/main/channel.c

------------------------------------------------------------------------
r244073 | tilghman | 2010-02-01 12:01:37 -0600 (Mon, 01 Feb 2010) | 29 lines

Merged revisions 244071 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r244071 | tilghman | 2010-02-01 11:53:39 -0600 (Mon, 01 Feb 2010) | 22 lines
 
 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 ASTERISK-15379)
    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 ASTERISK-13804)
    Reported by: ZX81
   
   (closes issue ASTERISK-15497)
    Reported by: alexr1
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=244073

By: Digium Subversion (svnbot) 2010-02-01 12:01:52.000-0600

Repository: asterisk
Revision: 244074

_U  branches/1.6.1/
U   branches/1.6.1/channels/chan_local.c
U   branches/1.6.1/main/channel.c

------------------------------------------------------------------------
r244074 | tilghman | 2010-02-01 12:01:52 -0600 (Mon, 01 Feb 2010) | 29 lines

Merged revisions 244071 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r244071 | tilghman | 2010-02-01 11:53:39 -0600 (Mon, 01 Feb 2010) | 22 lines
 
 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 ASTERISK-15379)
    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 ASTERISK-13804)
    Reported by: ZX81
   
   (closes issue ASTERISK-15497)
    Reported by: alexr1
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=244074