[Home]

Summary:ASTERISK-28528: Local channel video stream broken with ConfBridge and first_marked=yes
Reporter:Yuuki Hogo (yuuki)Labels:pjsip
Date Opened:2019-09-06 10:26:45Date Closed:
Priority:MajorRegression?Yes
Status:Open/NewComponents:Channels/chan_local
Versions:16.2.1 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Debian10@amd64Attachments:
Description:It was working on 13.14.1, do not on 16.2.1
Tried using chan_pjsip and chan_sip. Video support enabled in sip.conf.

confbridge.conf:
{noformat}
[user_marked]
type=user
marked=yes
startmuted=no
quiet=yes

[default_user]
type=user
marked=no
quiet=yes
wait_marked=yes
end_marked=yes

[default_bridge]
type=bridge
video_mode=first_marked
{noformat}
extensions.conf:
{noformat}
[recorder]
exten => _X.,1,Record(/tmp/ast.wav,,10,qkxu)

[local]
exten => _0X.,1,Originate(Local/${CALLERID(num)}-${EXTEN}@recorder/n,app,ConfBridge,${CALLERID(num)},,180,a)
same => n,ConfBridge(${CALLERID(num)},,user_marked)
{noformat}
asterisk -r:
{noformat}
> core show channel SIP/12323924-00000002
-- General --
          Name: SIP/12323924-00000002
          Type: SIP
      UniqueID: 1567783023.16
      LinkedID: 1567783023.16
     Caller ID: 12323924
Caller ID Name: P-1-1-1
Connected Line ID: (N/A)
Connected Line ID Name: (N/A)
Eff. Connected Line ID: (N/A)
Eff. Connected Line ID Name: (N/A)
   DNID Digits: 049035
      Language: ru
         State: Up (6)
 NativeFormats: (h264|ulaw)
   WriteFormat: slin
    ReadFormat: slin
WriteTranscode: Yes (slin@8000)->(ulaw@8000)
 ReadTranscode: Yes (ulaw@8000)->(slin@8000)
Time to Hangup: 1567783203
  Elapsed Time: 0h0m2s
     Bridge ID: 5eb24dbf-5f03-43de-a010-5b2559820df5
--   PBX   --
       Context: local
     Extension: 049035
      Priority: 7
    Call Group: 0
  Pickup Group: 0
   Application: ConfBridge
          Data: "12323924",,user_marked
Call Identifer: [C-00000003]
     Variables:
BRIDGEPEER=CBAnn/12323924-00000005;2,Local/12323924-049035@recorder-00000004;1
ORIGINATE_STATUS=SUCCESS
CONFBRIDGE_ID=12323924
SIPCALLID=23776843
SIPDOMAIN=asterisk
SIPURI=sip:12323924@172.19.89.68:5060
 CDR Variables:
level 1: dnid=049035
level 1: clid="P-1-1-1" <12323924>
level 1: src=12323924
level 1: dst=049035
level 1: dcontext=local
level 1: channel=SIP/12323924-00000002
level 1: dstchannel=Local/12323924-049035@recorder-00000004;1
level 1: lastapp=ConfBridge
level 1: lastdata="12323924",,user_marked
level 1: start=1567783023.242143
level 1: answer=1567783023.242750
level 1: end=0.000000
level 1: duration=2
level 1: billsec=2
level 1: disposition=1
level 1: amaflags=3
level 1: uniqueid=1567783023.16
level 1: linkedid=1567783023.16
level 1: sequence=6

-- Streams --
Name: audio
   Type: audio
   State: sendrecv
   Group: -1
   Formats: (ulaw)
   Metadata:
Name: video
   Type: video
   State: sendrecv
   Group: -1
   Formats: (h264)
   Metadata:
{noformat}
{noformat}
*CLI> core show channel Local/12323924-049035@recorder-00000004;1
-- General --
          Name: Local/12323924-049035@recorder-00000004;1
          Type: Local
      UniqueID: 1567783023.17
      LinkedID: 1567783023.17
     Caller ID: (N/A)
Caller ID Name: (N/A)
Connected Line ID: (N/A)
Connected Line ID Name: (N/A)
Eff. Connected Line ID: (N/A)
Eff. Connected Line ID Name: (N/A)
   DNID Digits: (N/A)
      Language: en
         State: Up (6)
 NativeFormats: (slin192)
   WriteFormat: slin
    ReadFormat: slin
WriteTranscode: Yes (slin@8000)->(slin@192000)
 ReadTranscode: Yes (slin@192000)->(slin@8000)
Time to Hangup: 0
  Elapsed Time: 0h0m7s
     Bridge ID: 5eb24dbf-5f03-43de-a010-5b2559820df5
--   PBX   --
       Context: recorder
     Extension: 12323924-049035
      Priority: 1
    Call Group: 0
  Pickup Group: 0
   Application: ConfBridge
          Data: 12323924
Call Identifer: [C-00000003]
     Variables:
BRIDGEPEER=CBAnn/12323924-00000005;2,SIP/12323924-00000002
 CDR Variables:
level 1: clid="" <>
level 1: dst=12323924-049035
level 1: dcontext=recorder
level 1: channel=Local/12323924-049035@recorder-00000004;1
level 1: lastapp=ConfBridge
level 1: lastdata=12323924
level 1: start=1567783023.276959
level 1: answer=1567783023.277470
level 1: end=1567783023.278203
level 1: duration=0
level 1: billsec=0
level 1: disposition=8
level 1: amaflags=3
level 1: uniqueid=1567783023.17
level 1: linkedid=1567783023.17
level 1: sequence=7

-- Streams --
Name: audio
   Type: audio
   State: sendrecv
   Group: -1
   Formats: (slin192)
   Metadata:
{noformat}
{noformat}
*CLI> core show channel Local/12323924-049035@recorder-00000004;2
-- General --
          Name: Local/12323924-049035@recorder-00000004;2
          Type: Local
      UniqueID: 1567783023.18
      LinkedID: 1567783023.17
     Caller ID: 12323924
Caller ID Name: (N/A)
Connected Line ID: (N/A)
Connected Line ID Name: (N/A)
Eff. Connected Line ID: (N/A)
Eff. Connected Line ID Name: (N/A)
   DNID Digits: (N/A)
      Language: en
         State: Up (6)
 NativeFormats: (slin192)
   WriteFormat: slin192
    ReadFormat: slin192
WriteTranscode: No
 ReadTranscode: No
Time to Hangup: 0
  Elapsed Time: 0h0m8s
     Bridge ID: (Not bridged)
--   PBX   --
       Context: recorder
     Extension: 12323924-049035
      Priority: 7
    Call Group: 0
  Pickup Group: 0
   Application: Record
          Data: /tmp/ast.wav,,10,qkxu
Call Identifer: [C-00000003]
     Variables:
RECORDED_FILE=/tmp/ast
SYSTEMSTATUS=SUCCESS
dest=049035
cid=12323924
 CDR Variables:
level 1: clid="" <12323924>
level 1: src=12323924
level 1: dst=12323924-049035
level 1: dcontext=recorder
level 1: channel=Local/12323924-049035@recorder-00000004;2
level 1: lastapp=Record
level 1: lastdata=/tmp/ast.wav,,10,qkxu
level 1: start=1567783023.277021
level 1: answer=1567783023.277449
level 1: end=0.000000
level 1: duration=8
level 1: billsec=8
level 1: disposition=1
level 1: amaflags=3
level 1: uniqueid=1567783023.18
level 1: linkedid=1567783023.17
level 1: sequence=8

-- Streams --
Name: audio
   Type: audio
   State: sendrecv
   Group: -1
   Formats: (slin192)
   Metadata:
*CLI>
{noformat}
Comments:By: Asterisk Team (asteriskteam) 2019-09-06 10:26:46.197-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

Please note that once your issue enters an open state it has been accepted. As Asterisk is an open source project there is no guarantee or timeframe on when your issue will be looked into. If you need expedient resolution you will need to find and pay a suitable developer. Asking for an update on your issue will not yield any progress on it and will not result in a response. All updates are posted to the issue when they occur.

By: Kevin Harwell (kharwell) 2019-09-09 18:04:50.894-0500

Please attach your pjsip.conf, or relevant information from it. Such as endpoint, aor, and transport configuration sections.

Also you've stated the video stream is broken, but how so? Is there no video when video is expected? Does video occur, but suddenly stop?

By: Yuuki Hogo (yuuki) 2019-09-10 03:08:45.879-0500

We use chan_sip with realtime. While researching the issue, I switched a test environment from chan_sip to chan_pjsip to be sure it is not related to a SIP channel in use. The issue persisted - while video stream is in a SIP channel, there is no such in a Local channel joined ConfBridge using Originate(). While marked user is in a ConfBridge, inviting other calling party to same ConfBridge using a SIP channel, video stream appears on a SIP channel of this calling party and works as intended.

I stated a video stream is broken meaning a video stream is absent at all in a Local channel after Originate(Local/...,ConfBridge) followed by ConfBridge() of a calling party. Record() produces no .h264 video at all on 16 version, but it is there with asterisk 13 on an absolutely same setup and configuration. Maybe I'm wrong, but I guess it is somehow related to an order in which a channels join ConfBridge. Since a Local channel joins ConfBridge before a video source (marked user) joined it, it can be possible a Local channel not updated with a new stream list upon appearance of a video source.

By: Kevin Harwell (kharwell) 2019-09-10 14:36:22.229-0500

I was able to duplicate using the configuration above, and configuring a pjsip endpoint with video capabilities. It appears video is not being recorded in Asterisk 16 in this scenario at least.

By: Yuuki Hogo (yuuki) 2019-09-11 02:01:41.521-0500

Example in the bug report is for ease to describe. If you replace Record() with Dial(SIP/...) you will notice same issue although there is a video stream in an outbound SIP channel and a video description in outbound SIP INVITE SDP is there and it is correct.