[Home]

Summary:ASTERISK-25918: SIP INFO (Key frame requests) not forwarded on
Reporter:Ian Gilmour (tuxian)Labels:
Date Opened:2016-04-13 03:53:07Date Closed:2016-04-19 10:16:30
Priority:MajorRegression?
Status:Closed/CompleteComponents:Channels/chan_pjsip Channels/chan_sip/General
Versions:13.7.2 Frequency of
Occurrence
Related
Issues:
duplicatesASTERISK-25867 [patch] Video delay on app_echo
Environment:centos 6.7 64-bitAttachments:
Description:In a video call Linphone and PJSIP clients use SIP INFO to request a video key frame. These packets appear to be silently dropped by the Asterisk PJSIP channel. Asterisk chan_sip appears to send a 200 OK response. In both cases the pkts are never forwarded on and video quality can be poor as a result.
Comments:By: Asterisk Team (asteriskteam) 2016-04-13 03:53:09.407-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].

By: Rusty Newton (rnewton) 2016-04-13 09:25:18.792-0500

Thanks for the report and debug. However we also need protocol specific debug captured at the time of the issue. Please include the following:

* Asterisk log files generated using the instructions on the Asterisk wiki [1], with the appropriate protocol debug options enabled, e.g. 'pjsip set logger on' if the issue involves the chan_pjsip channel driver.
* Configuration information for the relevant channel driver, e.g. pjsip.conf.
* A wireshark compatible packet capture, captured at the same time as the Asterisk log output.

[1] https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information



By: Rusty Newton (rnewton) 2016-04-13 09:25:47.816-0500

In addition please include the dialplan for the relevant call flow.

By: Ian Gilmour (tuxian) 2016-04-19 02:37:56.978-0500

Hi - I was using Echo() to test this. Having looked at the code I have since discovered that Echo() doesn't forward on any AST_FRAME_CONTROL tagged pkts. The SIP INFO Key frame request is one such pkt.

Fixed by changing the relevant section of app_echo() to the following:

{noformat}
if ((f->frametype == AST_FRAME_CONTROL)
&& (f->subclass.integer == AST_CONTROL_VIDUPDATE)) {
ast_indicate(chan, AST_CONTROL_VIDUPDATE);
} else if (f->frametype != AST_FRAME_CONTROL
  && f->frametype != AST_FRAME_MODEM
  && f->frametype != AST_FRAME_NULL
  && ast_write(chan, f)) {
ast_frfree(f);
goto end;
}
{noformat}

This fixed my immediate problem.

Any reason for not doing this?


By: Richard Mudgett (rmudgett) 2016-04-19 09:24:58.751-0500

[~tuxian] You mean something like ASTERISK-25867 for app_echo which has already been merged?

By: Ian Gilmour (tuxian) 2016-04-19 10:04:57.582-0500

Hi - yes, and that patch has the obvious advantage of requesting a key frame on the first received video frame.

By: Ian Gilmour (tuxian) 2016-04-19 10:16:30.679-0500

Duplicate of ASTERISK-25867.