[asterisk-bugs] [JIRA] (ASTERISK-29638) res_pjsip_session: No video after early media

Michael Auracher (JIRA) noreply at issues.asterisk.org
Fri Sep 10 07:24:33 CDT 2021


     [ https://issues.asterisk.org/jira/browse/ASTERISK-29638?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Auracher updated ASTERISK-29638:
----------------------------------------

    Attachment: pjsip_transports.conf
                pjsip_devices.conf
                pjsip.conf
                debug_log_caller-video-sendonly.log
                debug_log_caller-and-callee-video.log
                caller-video-sendonly.pcap
                caller-and-callee-video.pcap

Caller-and-callee-video: both devices have video enabled (incoming and outgoing) -> result: after 'Answer' no video sent to the caller, but still sent to the callee.

caller-video-sendonly: the caller device has incoming video disabled (intended use case) -> result: after 'Answer' video to the callee is stopped but works after a few seconds 
(Note: in v16.10 and 18.2 the video on the callee also stopped, but I cannot reproduce this on my current 18.6.0 now)



> res_pjsip_session: No video after early media
> ---------------------------------------------
>
>                 Key: ASTERISK-29638
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29638
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_pjsip_session
>    Affects Versions: 16.10.0, 18.6.0
>         Environment: Alpine Linux (in Docker), various versions.
> All Asterisk versions >16.9
>            Reporter: Michael Auracher
>            Assignee: Michael Auracher
>         Attachments: caller-and-callee-video.pcap, caller-video-sendonly.pcap, debug_log_caller-and-callee-video.log, debug_log_caller-video-sendonly.log, pjsip.conf, pjsip_devices.conf, pjsip_transports.conf
>
>
> This issue is 100% reproducable on all Asterisk versions > 16.9.0
> Setup: Asterisk with default config, only devices are configured.
> Codecs: h264 + any audio codec
> Reproduce:
> (Tested with Yealink-T58V, Yealink-VP530, Grandstream-GXV3275  (all early media enabled) to a  Grandstream-GXV3275 (or any other device supporting early media)
> 1. Call from a video phone 
> 2. Preview video is displayed on GXV3275 (OK)
> 3. Answer call on GXV3275 
> Actual result: No Video is shown on on caller display
> Expected result: Video is shown on on caller display
> Happens after the changes introduced in https://issues.asterisk.org/jira/browse/ASTERISK-28783 in
> https://gerrit.asterisk.org/c/asterisk/+/13954/2/res/res_pjsip_session.c
> Workaround: patched file by reverting the changes from ASTERISK-28783
> Details:
> 11:28:47.1228 :  [11153]: res_pjsip_session.c:4230 session_on_tsx_state:  Topology: Pending: (null topology)  Active:  <0:audio-0:audio:sendrecv (g722|alaw|ulaw)> <1:video-1:video:sendrecv (h264)>
> Than we get: "Pending media state exists"
> res_pjsip_session.c:2302 sip_session_refresh:  PJSIP/132-00000000: DP:  <0:audio-0:audio:sendrecv (g722|alaw|ulaw)> <1:video-1:video:recvonly (h264)> → this will be used
> res_pjsip_session.c:2303 sip_session_refresh:  PJSIP/132-00000000: DA:  <0:audio-0:audio:sendrecv (g722|alaw|ulaw)> <1:video-1:video:sendrecv (h264)>
> res_pjsip_session.c:2304 sip_session_refresh:  PJSIP/132-00000000: CP: (null topology)
> res_pjsip_session.c:2305 sip_session_refresh:  PJSIP/132-00000000: CA:  <0:audio-0:audio:sendrecv (g722|alaw|ulaw)> <1:video-1:video:sendrecv (h264)>
> The first channel in the bridge is PJSIP/200-00000001 (the caller) which has :
>     Topology: Pending: (null topology)  Active:  <0:audio-0:audio:sendrecv (g722|alaw|ulaw)> <1:video-1:video:sendonly (h264)>
> Which is the “Early media” state in this test case
> This  is the resulting topology although the SIP 200 OK + SDP video:sendrecv is set by the Grandstream:
> 11:28:47.1237 :  [11153]: res_pjsip_session.c:2194 sip_session_refresh:  PJSIP/132-00000000: New SDP? yes  Queued? yes DP:  <0:audio-0:audio:sendrecv (g722|alaw|ulaw)> <1:video-1:video:recvonly (h264)>  DA:  <0:audio-0:audio:sendrecv (g722|alaw|ulaw)> <1:video-1:video:sendrecv (h264)>
> 11:28:47.1237 :  [11153]: res_pjsip_session.c:2266 sip_session_refresh:  PJSIP/132-00000000: Pending media state exists
> 11:28:47.1238 :  [11153]: res_pjsip_session.c:2300 sip_session_refresh:  PJSIP/132-00000000: Active media state exists and is not equal to pending
> 11:28:47.1243 :  [11153]: res_pjsip_session.c:1945 resolve_refresh_media_states:  PJSIP/132-00000000: Changed NP stream state from sendrecv to recvonly
> Then an INVITE is sent to the Grandstream and the video is turned off.



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



More information about the asterisk-bugs mailing list