[asterisk-bugs] [JIRA] (ASTERISK-27994) PJSIP: Early media ringback not indicated after Progress()

Alex Hermann (JIRA) noreply at issues.asterisk.org
Fri Jan 4 09:50:47 CST 2019


    [ https://issues.asterisk.org/jira/browse/ASTERISK-27994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=245909#comment-245909 ] 

Alex Hermann commented on ASTERISK-27994:
-----------------------------------------

I don't think inband ringing should ever be generated when inband_progress=no. In this case Asterisk should only forward RTP, not generate it, so it complies with the best practices of RFC3960. I think that is the current behavior of this setting.

I think Asterisk could really use an option to generate inband ringing to the caller after receiving a 180 from the callee as long as the callee doesn't send any RTP itself. As soon as the callee start sending RTP, Asterisk should forward that instead. This would make Asterisk implement the RFC3960 best practices on behalf of broken callers that don't generate ringback tones themselves.


> PJSIP: Early media ringback not indicated after Progress()
> ----------------------------------------------------------
>
>                 Key: ASTERISK-27994
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27994
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_pjsip
>    Affects Versions: 13.22.0
>         Environment: Ubuntu 16.04 LTS, Asterisk 13.22.0, pjproject bundled 2.7.2
>            Reporter: Gregory Massel
>            Severity: Minor
>              Labels: pjsip
>         Attachments: inband_progress_no.pcap, inband_progress_no.png, inband_progress_yes.pcap, inband_progress_yes.png
>
>
> chan_pjsip doesn't handle early media correctly in all instances.
> Specifically, two issues:
> 1. When the endpoint is configured with "inband_progress = no" (default), chan_pjsip will act as chan_sip used to with progressinband=never, i.e. Even if a Progress() application is run, it will still NOT indicate ringing inband.
> e.g. Something like:
> exten => s,1,Progress()
> same => n,Playtones(!400*33/40,!0/40,!400*33/40,!0/40,!400*33/40,!0/500)
> same => n,Wait(0.25)
> same => n,StopPlayTones
> same => n,Dial(PJSIP/endpoint)
> If the dialled endpoint indicates ringing, the calling endpoint hears dead silence (after the initial tones). This is incorrect. The channel driver must provide inband ringing (despite inband_progress=no setting) because the Progress() application has been run and the media stream opened.
> chan_sip handles this correctly (if progressinband=no is set); chan_pjsip doesn't.
> 2. When the endpoint is configured with "inband_progress = yes" and the same dialplan is used, pjsip will issue TWO 183 messages to the calling endpoint, one when the Progress application is run and then a second when it receives a 180 from the dialled endpoint. This is also incorrect because, once an intial 183 has been sent and the media stream is open, no further 183 message should be sent.



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



More information about the asterisk-bugs mailing list