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

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


Michael Auracher created ASTERISK-29638:
-------------------------------------------

             Summary: 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: 18.6.0, 16.10.0
         Environment: Alpine Linux (in Docker), various versions.
All Asterisk versions >16.9
            Reporter: Michael Auracher
            Severity: Major


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