[asterisk-bugs] [JIRA] (ASTERISK-29314) MixMonitor stops when use Transfer key of a IP Phone

Celso Annes (JIRA) noreply at issues.asterisk.org
Wed Feb 24 11:33:15 CST 2021


Celso Annes created ASTERISK-29314:
--------------------------------------

             Summary: MixMonitor stops when use Transfer key of a IP Phone
                 Key: ASTERISK-29314
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29314
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Applications/app_mixmonitor
    Affects Versions: 16.16.1, 16.4.0
         Environment: OS: Debian 9.11 (stretch)
CPU: Intel Xeon E5620 (4) 2.40GHz
MEM: 4G
VMware Virtual Platform
            Reporter: Celso Annes
            Severity: Major


Hello, I am having a problem in a specific method of transfer on Asterisk 16.4.0.
When I am use a **Transfer key** of an IP Phone it didn't record the call when the IP Phone is the source of the call and the source of the transfer. Let me give an exemple:

*9002* is my *IP Phone* an Yealink T21P-E2 and I have two more for this exemple, 9000 and 9001.

1. *9002* make a call to 9000
1. 9000 answer *9002* and they start to talk
1. *9002* use the *Transfer Key* to 9001
1. 9001 answer *9002* and they start to talk
1. *9002* hangup and complete the transfer between 9000 and 9001 (At this point the call aren't recorded anymore.)
1. 9000 start to talk with 9001

MixMonitor record the followed calls:

* 9002 with 9000
* 9002 with 9001

*The transfered call 9000 with 9001 is not recorded.*

Here is the `sip.conf`

{code}
[9000]
host=dynamic
type=friend
hasvoicemail=yes
fullname=9000
callgroup=0
pickupgroup=0
secret=9000
context=jail
disallow=all
allow=alaw,ulaw
callerid="9000" <9000>
qualify=yes
nat=force_rport,comedia

[9001]
host=dynamic
type=friend
hasvoicemail=yes
fullname=9001
callgroup=0
pickupgroup=0
secret=9001
context=jail
disallow=all
allow=alaw,ulaw
callerid="9001" <9001>
qualify=yes
nat=force_rport,comedia

[9002]
host=dynamic
type=friend
hasvoicemail=yes
fullname=9002
callgroup=0
pickupgroup=0
secret=9002
context=jail
disallow=all
allow=alaw,ulaw
callerid="9002" <9000>
qualify=yes
nat=force_rport,comedia
{code}


Here is the `extensions.conf`
{code}
[jail]
exten => _900X,1,NoOp(   ----------------- GRAVANDO: ${CDR(src)} -> ${CDR(dst)} | LINKEDID: ${CDR(LINKEDID)} -----------------   )
 same => n,Set(CDR(userfield)=${CDR(LINKEDID)}.wav)
 same => n,MixMonitor(${CDR(LINKEDID)}.wav,a)
 same => n,Dial(SIP/${EXTEN},,tT)
 same => n,HangUp()
{code}


Step 1 - *9002* make a call to 9000
{code}
[Jan 15 19:09:24]   == Using SIP RTP CoS mark 5
[Jan 15 19:09:24]     -- Executing [9000 at jail:1] NoOp("SIP/9002-00000177", "   ----------------- GRAVANDO: 9000 -> 9000 | LINKEDID: 1610748564.2849 -----------------   ") in new stack
[Jan 15 19:09:24]     -- Executing [9000 at jail:2] Set("SIP/9002-00000177", "CDR(userfield)=1610748564.2849.wav") in new stack
[Jan 15 19:09:24]     -- Executing [9000 at jail:3] MixMonitor("SIP/9002-00000177", "1610748564.2849.wav,a") in new stack
[Jan 15 19:09:24]     -- Executing [9000 at jail:4] Dial("SIP/9002-00000177", "SIP/9000,,tT") in new stack
[Jan 15 19:09:24]   == Begin MixMonitor Recording SIP/9002-00000177
[Jan 15 19:09:24]   == Using SIP RTP CoS mark 5
[Jan 15 19:09:24]     -- Called SIP/9000
[Jan 15 19:09:24]     -- SIP/9000-00000178 is ringing
[Jan 15 19:09:26]     -- SIP/9000-00000178 answered SIP/9002-00000177
[Jan 15 19:09:26]     -- Channel SIP/9000-00000178 joined 'simple_bridge' basic-bridge <977e4c9d-05f9-49bf-b145-2251ba7a3db0>
[Jan 15 19:09:26]     -- Channel SIP/9002-00000177 joined 'simple_bridge' basic-bridge <977e4c9d-05f9-49bf-b145-2251ba7a3db0>
{code}

*`mixmonitor list`*
{code}
finti*CLI> mixmonitor list
SIP/9000-00000178  SIP/9002-00000177
finti*CLI> mixmonitor list SIP/9000-00000178
MixMonitor ID   File    Receive File    Transmit File
=========================================================================
finti*CLI> mixmonitor list SIP/9002-00000177
MixMonitor ID   File    Receive File    Transmit File
=========================================================================
0x7fda8c001020  /var/spool/asterisk/monitor/1610748564.2849
{code}

Step 2 - *9002* use the *Transfer Key* to 9001


{code}
[Jan 15 19:11:00]     -- Started music on hold, class 'default', on channel 'SIP/9000-00000178'
[Jan 15 19:11:05]   == Using SIP RTP CoS mark 5
[Jan 15 19:11:05]     -- Executing [9001 at jail:1] NoOp("SIP/9002-00000179", "   ----------------- GRAVANDO: 9000 -> 9001 | LINKEDID: 1610748665.2858 -----------------   ") in new stack
[Jan 15 19:11:05]     -- Executing [9001 at jail:2] Set("SIP/9002-00000179", "CDR(userfield)=1610748665.2858.wav") in new stack
[Jan 15 19:11:05]     -- Executing [9001 at jail:3] MixMonitor("SIP/9002-00000179", "1610748665.2858.wav,a") in new stack
[Jan 15 19:11:05]     -- Executing [9001 at jail:4] Dial("SIP/9002-00000179", "SIP/9001,,tT") in new stack
[Jan 15 19:11:05]   == Using SIP RTP CoS mark 5
[Jan 15 19:11:05]     -- Called SIP/9001
[Jan 15 19:11:05]   == Begin MixMonitor Recording SIP/9002-00000179
[Jan 15 19:11:05]     -- SIP/9001-0000017a is ringing
[Jan 15 19:11:09]     -- SIP/9001-0000017a answered SIP/9002-00000179
[Jan 15 19:11:09]     -- Channel SIP/9001-0000017a joined 'simple_bridge' basic-bridge <ec1b1108-8f7c-439f-959e-5becd5ccb16e>
[Jan 15 19:11:09]     -- Channel SIP/9002-00000179 joined 'simple_bridge' basic-bridge <ec1b1108-8f7c-439f-959e-5becd5ccb16e>
{code}

*`mixmonitor list`*
{code}
finti*CLI> mixmonitor list
SIP/9000-00000178  SIP/9001-0000017a  SIP/9002-00000177  SIP/9002-00000179
finti*CLI> mixmonitor list SIP/9000-00000178
MixMonitor ID   File    Receive File    Transmit File
=========================================================================
finti*CLI> mixmonitor list SIP/9001-0000017a
MixMonitor ID   File    Receive File    Transmit File
=========================================================================
finti*CLI> mixmonitor list SIP/9002-00000177
MixMonitor ID   File    Receive File    Transmit File
=========================================================================
0x7fda8c001020  /var/spool/asterisk/monitor/1610748564.2849
finti*CLI> mixmonitor list SIP/9002-00000179
MixMonitor ID   File    Receive File    Transmit File
=========================================================================
0x7fda0c0070d0  /var/spool/asterisk/monitor/1610748665.2858
{code}

Step 3 - *9002* hangup and complete the transfer between 9000 and 9001
*At this point the call aren't recorded anymore.*
{code}
[Jan 15 19:14:22]     -- Channel SIP/9000-00000178 left 'simple_bridge' basic-bridge <977e4c9d-05f9-49bf-b145-2251ba7a3db0>
[Jan 15 19:14:22]     -- Channel SIP/9002-00000179 left 'simple_bridge' basic-bridge <ec1b1108-8f7c-439f-959e-5becd5ccb16e>
[Jan 15 19:14:22]     -- Channel SIP/9000-00000178 swapped with SIP/9002-00000179 into 'simple_bridge' basic-bridge <ec1b1108-8f7c-439f-959e-5becd5ccb16e>
[Jan 15 19:14:22]     -- Channel SIP/9002-00000177 left 'simple_bridge' basic-bridge <977e4c9d-05f9-49bf-b145-2251ba7a3db0>
[Jan 15 19:14:22]   == Spawn extension (jail, 9001, 4) exited non-zero on 'SIP/9002-00000179'
[Jan 15 19:14:22]   == Spawn extension (jail, 9000, 4) exited non-zero on 'SIP/9002-00000177'
[Jan 15 19:14:22]   == MixMonitor close filestream (mixed)
[Jan 15 19:14:22]   == End MixMonitor Recording SIP/9002-00000179
[Jan 15 19:14:22]     -- Stopped music on hold on SIP/9000-00000178
[Jan 15 19:14:22]   == MixMonitor close filestream (mixed)
[Jan 15 19:14:22]   == End MixMonitor Recording SIP/9002-00000177
{code}

*`mixmonitor list`*
{code}
finti*CLI> mixmonitor list
SIP/9000-00000178  SIP/9001-0000017a
finti*CLI> mixmonitor list SIP/9000-00000178
MixMonitor ID   File    Receive File    Transmit File
=========================================================================
finti*CLI> mixmonitor list SIP/9001-0000017a
MixMonitor ID   File    Receive File    Transmit File
=========================================================================
{code}

Step 4 - 9001 hangup, end the call.
{code}
[Jan 15 19:15:42]     -- Channel SIP/9001-0000017a left 'simple_bridge' basic-bridge <ec1b1108-8f7c-439f-959e-5becd5ccb16e>
[Jan 15 19:15:42]     -- Channel SIP/9000-00000178 left 'simple_bridge' basic-bridge <ec1b1108-8f7c-439f-959e-5becd5ccb16e>
{code}

I don't remember to have this problem on the Asterisk 13 when I used Set(AUDIOHOOK_INHERIT(MixMonitor)=yes).

Is this a BUG?

Do I have to do anything else to make the recording keep going in this scenario.

Is there a way to keeping using the Transfer key on the IP Phones in the example that I gave?



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list