No video when dialling multiple extensions

Hello. I am running a very minimal asterisk instance to operate a door intercom system, as shown in the diagram below:

extensions

I have configured extensions for each phone and they all register fine. The door phone dials a specific extension when the button is pressed, and sends h264 video as well. The tablet (32) is running the linphone soft phone and supports video. The other phones are simple desk phones without video.

If I configure the door phone to dial directly to extension 32 (tablet running linphone), I can answer the call and see the video.

However, to make all the phones ring, I have configured the door phone to dial extension 30, which I created in extensions.conf and set it to dial extensions 32, 35 and 36 at the same time. With this configuration, all phones ring and I can answer from any phone, but if I answer from the tablet, there is no video.

My sip.conf:

[general]
context=default
videosupport=yes

[31]
type=friend
context=from-internal
host=dynamic
secret=********
disallow=all
allow=ulaw
allow=h264

[32]
type=friend
context=from-internal
host=dynamic
secret=********
disallow=all
allow=ulaw
allow=h264

[35]
type=friend
context=from-internal
host=dynamic
secret=********
disallow=all
allow=ulaw

[36]
type=friend
context=from-internal
host=dynamic
secret=********
disallow=all
allow=ulaw

My extensions.conf

[from-internal]

exten => 30,1,Set(DIALGROUP(monitors,add)=SIP/32)
exten => 30,n,Set(DIALGROUP(monitors,add)=SIP/35)
exten => 30,n,Set(DIALGROUP(monitors,add)=SIP/36)
exten => 30,n,Dial(${DIALGROUP(monitors)},120)
exten => 30,n,Hangup()

exten => 32,1,Dial(SIP/32,120)
exten => 32,2,Hangup()

exten => 35,1,Dial(SIP/35,120)
exten => 35,2,Hangup()

exten => 36,1,Dial(SIP/36,120)
exten => 36,2,Hangup()

Here’s a log showing a direct call from 31 to 32 with video, and then a call from 31 to 30 answered from 32 where video doesn’t work.

  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
       > 0xd4dbe0 -- Strict RTP learning after remote address set to: 192.168.1.128:7078
       > 0xd270c0 -- Strict RTP learning after remote address set to: 192.168.1.128:9078
    -- Executing [32@from-internal:1] Dial("SIP/31-0000000c", "SIP/32,120") in new stack
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
    -- Called SIP/32
    -- SIP/32-0000000d is ringing
    -- SIP/32-0000000d is ringing
       > 0xd52000 -- Strict RTP learning after remote address set to: 192.168.1.239:7078
       > 0xd54a60 -- Strict RTP learning after remote address set to: 192.168.1.239:9078
    -- SIP/32-0000000d answered SIP/31-0000000c
    -- Channel SIP/32-0000000d joined 'simple_bridge' basic-bridge <a15547c7-43ab-44f2-b151-4a40d64eb0e8>
    -- Channel SIP/31-0000000c joined 'simple_bridge' basic-bridge <a15547c7-43ab-44f2-b151-4a40d64eb0e8>
       > Bridge a15547c7-43ab-44f2-b151-4a40d64eb0e8: switching from simple_bridge technology to native_rtp
       > Remotely bridged 'SIP/31-0000000c' and 'SIP/32-0000000d' - media will flow directly between them
       > 0xd54a60 -- Strict RTP switching to RTP target address 192.168.1.239:9078 as source
       > 0xd52000 -- Strict RTP switching to RTP target address 192.168.1.239:7078 as source
       > 0xd4dbe0 -- Strict RTP switching to RTP target address 192.168.1.128:7078 as source
       > 0xd4dbe0 -- Strict RTP learning complete - Locking on source address 192.168.1.128:7078
       > 0xd270c0 -- Strict RTP learning after remote address set to: 192.168.1.128:9078
    -- Channel SIP/32-0000000d left 'native_rtp' basic-bridge <a15547c7-43ab-44f2-b151-4a40d64eb0e8>
    -- Channel SIP/31-0000000c left 'native_rtp' basic-bridge <a15547c7-43ab-44f2-b151-4a40d64eb0e8>
  == Spawn extension (from-internal, 32, 1) exited non-zero on 'SIP/31-0000000c'
       > 0xd270c0 -- Strict RTP learning after remote address set to: 192.168.1.128:9078







  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
       > 0xd4dbe0 -- Strict RTP learning after remote address set to: 192.168.1.128:7078
       > 0xd270c0 -- Strict RTP learning after remote address set to: 192.168.1.128:9078
    -- Executing [30@from-internal:1] Set("SIP/31-0000000e", "DIALGROUP(monitors,add)=SIP/32") in new stack
    -- Executing [30@from-internal:2] Set("SIP/31-0000000e", "DIALGROUP(monitors,add)=SIP/34") in new stack
    -- Executing [30@from-internal:3] Set("SIP/31-0000000e", "DIALGROUP(monitors,add)=SIP/35") in new stack
    -- Executing [30@from-internal:4] Set("SIP/31-0000000e", "DIALGROUP(monitors,add)=SIP/36") in new stack
    -- Executing [30@from-internal:5] Dial("SIP/31-0000000e", "SIP/32&SIP/36&SIP/35&SIP/34") in new stack
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
    -- Called SIP/32
    -- Called SIP/36
    -- Called SIP/35
    -- SIP/36-00000010 is ringing
    -- SIP/35-00000011 is ringing
    -- SIP/32-0000000f is ringing
    -- SIP/32-0000000f is ringing
       > 0xd574c0 -- Strict RTP learning after remote address set to: 192.168.1.239:7078
       > 0xd31700 -- Strict RTP learning after remote address set to: 192.168.1.239:9078
    -- SIP/32-0000000f answered SIP/31-0000000e
    -- Channel SIP/32-0000000f joined 'simple_bridge' basic-bridge <f1d4773d-c127-4e71-9508-e37debd577c0>
    -- Channel SIP/31-0000000e joined 'simple_bridge' basic-bridge <f1d4773d-c127-4e71-9508-e37debd577c0>
       > Bridge f1d4773d-c127-4e71-9508-e37debd577c0: switching from simple_bridge technology to native_rtp
       > Remotely bridged 'SIP/31-0000000e' and 'SIP/32-0000000f' - media will flow directly between them
       > 0xd31700 -- Strict RTP switching to RTP target address 192.168.1.239:9078 as source
       > 0xd574c0 -- Strict RTP switching to RTP target address 192.168.1.239:7078 as source
       > 0xd4dbe0 -- Strict RTP switching to RTP target address 192.168.1.128:7078 as source
       > 0xd4dbe0 -- Strict RTP learning complete - Locking on source address 192.168.1.128:7078
       > 0xd270c0 -- Strict RTP learning after remote address set to: 192.168.1.128:9078
    -- Channel SIP/32-0000000f left 'native_rtp' basic-bridge <f1d4773d-c127-4e71-9508-e37debd577c0>
    -- Channel SIP/31-0000000e left 'native_rtp' basic-bridge <f1d4773d-c127-4e71-9508-e37debd577c0>
  == Spawn extension (from-internal, 30, 5) exited non-zero on 'SIP/31-0000000e'
       > 0xd270c0 -- Strict RTP learning after remote address set to: 192.168.1.128:9078

I have tried to debug but I don’t see any clues. Perhaps someone can shed some light? Let me know if you need any more info.

You’d need a packet capture to see where video is being lost, as well I’d suggest disabling directmedia to have media flow through Asterisk which helps debugging things.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.