[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