[Home]

Summary:ASTERISK-06481: Asterisk adds SDP to a 183 In Progress?!
Reporter:Normand Ranger (normandr)Labels:
Date Opened:2006-03-06 08:50:13.000-0600Date Closed:2008-01-15 17:21:30.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I'm initiating a call from a ZYXEL P200W IP Phone to call a Mediatrix 1402 (ISDN BRI gateway) to reach extensions on a Meridian Nortel PBX.

Based on ISDN events, the 1402 sends a 183 In Progress, with no SDP, to Asterisk, followed by a 180 Ringing (still no SDP), to generate a local ringback on the IP Phone. When forwarding the 183 to the IP phone, unfortunately, Asterisk adds SDP to the "183 In Progress" which in turn triggers the voice in the IP phone, also known as early media. The result of this early media is that the IP phone will never generate the local ringback, probably because voice has already started.

The "in progress" is triggered by a ISDN event and thre is no way to remove it from the call progress.  We could ask to the IP phones manufacturer but I think Asterisk should not add SDP when forwarding and we hope there is an easy way to prevent this behavior.

So how can I tell Asterisk not to add this SDP?

We have tested with Asterisk@home 2.5 and the core version of Asterisk 1.2.4 (no AMP).

****** ADDITIONAL INFORMATION ******



according to:
http://www.digium.com/asterisk_handbook/dial.html

r – indicate call ringing to the calling extension
==================================================
This option is used when your phone set doesn't recognize the traditional call progress indications. The best example of this is when you don'thear the “ringing” on the phone when you call another extension. With the 'r'option turned on, ring tone is passed as actual audio on the phone line, allowing you to hear the call progress.

*This is the behavior that we want.
**But this is certainly not the behavior that I have, perhaps this doc is outdated...

according to:
http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Dial

r: Generate a ringing tone for the calling party, passing no audio from the called channel(s) until one answers. Use with care and don't insert this by default into all your dial statements as you are killing call progress information for the user. Really, you almost certainly do not want to use this. Asterisk will generate ring tones automatically where it is appropriate to do so. "r" makes it go the next step and additionally generate ring tones where it is probably not appropriate to do so.

R: Indicate ringing to the calling party when the called party indicates ringing, pass no audio until answered. This is available only if you are using kapejod's bristuff.


With Asterisk@home AMP, the dialplan is simply the default for trunks:
; arg1 = trunk number, arg2 = number, arg3 = route password
exten => s,14,Dial(${OUT_${ARG1}}/${OUTNUM}) ; Regular Trunk Dial
no music on hold or anything who could trigger early media (well in my opinion).

With the core version of Asterisk we used a temp exten:
exten => 01234,1,Dial(SIP/384010@207.134.65.125,20,r)

option r seems to force a ringback, killing the call progress.

option R, as per the description, seems to be exactly what we need, but it didn't work.

Due to the simplicity of the problem, I haven't provided debug traces but I can provay any info that you may want, just ask me.

Of corse, early media is not against any RFC, it's just that none of our endpoints are doing early media, it's Asterisk that introduces it in the call progress.

I have posted a question in your forum but have yet received an answer.
http://forums.digium.com/viewtopic.php?t=4911&highlight=

Thank you for your help and for making Asterisk available to the VoIP community!

Best regards,

Normand
Comments:By: Olle Johansson (oej) 2006-03-06 09:52:45.000-0600

Always interesting with new stuff. 183 without SDP? Please follow the bug guide lines and add a SIP debug to this report. THanks.

By: Olle Johansson (oej) 2006-03-06 10:01:00.000-0600

btw - Asterisk never forwards a SIP message, we are not a sip proxy :-)

By: Normand Ranger (normandr) 2006-03-07 06:43:29.000-0600

I agree with you, 183 without SDP is not common practice.  In this case it must be triggered by a similar event on the ISDN side  (call progress before call alerting).

I am busy full day training a customer today and tomorrow but I should have the time to make the debug trace tomorrow morning.

By: dlu (dlu) 2006-03-07 13:45:34.000-0600

Hi, The 183 with the SDP is not a bug. Its a way to deliver ealy connect streams to the calling party. So if we cant answer an call from pstn we can Background(play a reason|n) to the calling party without answer the call. If this will happen and more than one * boxes are in the route this works perfect.

Read about this in rfc3261 13.3.1.1,20.11 and rfc3690

The 183 is ok imho.

By: dlu (dlu) 2006-03-07 13:53:29.000-0600

I forgot. The sdp in 183 cant trigger anything without media packets. If this happen the UA should be a little buggy. We have this covered on Grandstream GXP2000. On a ELMEG PBX with a VoIP Module the phone on the PBX will badly generate local ringback on a 183 also.

If a 183 will received from an UA and sdp is offered its only an offer. When mediapackets will arrive the sdp settings can be used. I can be wrong but i dont think so :-)

By: Olle Johansson (oej) 2006-03-07 14:20:22.000-0600

dlu: The question is really how we should react to the incoming 183 without SDP.

By: dlu (dlu) 2006-03-07 15:38:19.000-0600

oej: We do nothing? :-)

By: Olle Johansson (oej) 2006-03-08 01:40:18.000-0600

Trying to find some reference documentation on this issue.

By: dlu (dlu) 2006-03-08 03:08:07.000-0600

I only found this: http://www3.ietf.org/proceedings/99jul/I-D/draft-ietf-mmusic-sdp-qos-00.txt

There are described alot about 180/3.

By: Olle Johansson (oej) 2006-03-08 03:45:30.000-0600

I can find no reference to any 183 message *without* SDP in any call flows or documents out there. I would propose that we simply treat 183 without SDP as an error and ignore it, thus solving this issue.

By: Paul Cadach (pcadach) 2006-03-08 04:24:29.000-0600

oej: IMHO you are right. 183 Progress usually equal to ISDN PROGRESS message which says to caller about remote party isn't ISDN compliant and all further information would be available in-band, so media should be established (in most cases). Probably 183 message without SDP is a bug (for example in H.323 terminology, when early media/fast-start is not available), so ignore of such message (183 without SDP) is probably correct choice.

One side effect of ignoring malformed "progress" message is it requires to stop internal timers (in ISDN between PROCEEDING and ALERTING, 10 seconds by default).

By: dlu (dlu) 2006-03-08 04:42:34.000-0600

My guess that we do nothing was still right :-)

By: Olle Johansson (oej) 2006-03-08 04:46:58.000-0600

We haven't got any timers for that on the SIP side :-)

By: dlu (dlu) 2006-03-08 04:47:17.000-0600

Another thing should we found out. It exists any UAS that treat the 183 without mediapakets as a trigger to generate local ringback instead of waiting for a 180.

I suggest that we can configure per Sip-User to supresse >180 <200 Messages completeley.

What you think about that Olle?

By: Olle Johansson (oej) 2006-03-08 04:55:25.000-0600

Fixed in 1.2 rev 12458, trunk rev 12459. Thank you for reporting this and thank you to PCadach and dlu for your input.

By: Normand Ranger (normandr) 2006-03-08 08:07:06.000-0600

Hi Guys,

Sorry to re-open this, so to fix this, all I have to do is to install to latest Asterisk 1.2 with same config?  My customer is using Asterisk@Home, are we doomed?

By the way, nothing says you have to put SDP in a 183, and that is probabaly why this was fixed in the following builts.

Thanks for all the support.

By: dlu (dlu) 2006-03-08 08:20:57.000-0600

@NormandR

The update depends on *@home you use.

There are rfc´s listed above that tell us this funny things. 183 with sdp is sip compilant.

By: Olle Johansson (oej) 2006-03-08 10:03:00.000-0600

There's no examples anywhere on 183 *without* sip. I would really like to know what the developer of that device means with that message.

This is fixed in the 1.2 source code tree and will be part of next version of Asterisk 1.2. I don't know about asterisk@home.

By: Normand Ranger (normandr) 2006-03-09 06:18:25.000-0600

Is there a configuration possibility that could be uses as a workaround while waiting for a new Asterisk built and @home version?

oej:
This 183 In Progress without SDP probably means the call in is progress but no ringing or alerting yet, is must be based on a similar progress event happening on the ISDN side, we don't see it often and it depends on the ISDN signaling.

If I remember well, another customer was using the 183 to generate local ringing, it even become an interop option in Mediatrix FXS box, whether to send a 180 or a 183.  (I work at Mediatrix Customer Support by the way...)

dlu:
Of corse, 183 with SDP is RFC compliant, what is questionnable here, is Asterisk behavior of adding or using SDP in any received 183 when there was no SDP originally, in our case, it triggers early media, but none of the endpoints wanted to have early media and none of those endpoints have RTP stream to send to one another at this point, media is triggered by Asterisk!  Generating a local ringing after voice has started seems to be difficult for most devices.  The result is no ringback on IP phones calling the digital gateway, this is a deployment stopper for this customer.

Normand

By: Paul Cadach (pcadach) 2006-03-09 07:04:39.000-0600

NormandR: ISDN's PROGRESS message means remote side is not ISDN-compliant and further call state information might be available inband, so it REQUIRES to open backward audio channel with PROGRESS message. With mapping PROGRESS ISDN message to SIP's 183 last one should ALWAYS have SDP information.

By: Normand Ranger (normandr) 2006-03-09 08:11:39.000-0600

PCadach:
Good point, I'll have this analysed further.  The ISDN signaling comes from a Nortel Meridian using DSS1, I doubt that this popular switch is not ISDN compliant, so perhaps the Mediatrix 1402 digital gateway is misleading everyone by NOT putting SDP into the 183.

Still, an Asterisk configuration workaround would be appreciated because the endpoints themselves can't be configured to support this type of call progress.

By: Olle Johansson (oej) 2006-03-09 09:35:43.000-0600

Normand, the real question here is if 183 session progress should be sent for every ISDN session progress, or only for those that have early media. All the documentation I can find only talks about early media, so my conclusion is that the gateway should not produce a 183 Session Progress without SDP for those ISDN messages. Anyway, case is closed and fixed.

By: Olle Johansson (oej) 2006-03-09 09:43:42.000-0600

(Please use mailing lists for discussions - this is after all the bug tracker :-)

By: Normand Ranger (normandr) 2006-03-09 11:14:57.000-0600

there are no ways now to configure my Asterisk not to add SDP or ignored the 183?

a fix in a next build is great but since my custoemr is using @home, it doesn't bring any solution on the table soon enough.

If there is no configuration possible right now, let's close this.

By: Olle Johansson (oej) 2006-03-09 12:37:30.000-0600

I've closed this report many times. The patch is very simple, if you can't figure it out then mail me. But please let's keep this report closed since we solved the issue. THanks.

By: Digium Subversion (svnbot) 2008-01-15 17:21:28.000-0600

Repository: asterisk
Revision: 12458

U   branches/1.2/channels/chan_sip.c

------------------------------------------------------------------------
r12458 | oej | 2008-01-15 17:21:28 -0600 (Tue, 15 Jan 2008) | 2 lines

Issue ASTERISK-6481 - Ignore 183 session progress without SDP

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=12458

By: Digium Subversion (svnbot) 2008-01-15 17:21:30.000-0600

Repository: asterisk
Revision: 12459

_U  trunk/
U   trunk/channels/chan_sip.c

------------------------------------------------------------------------
r12459 | oej | 2008-01-15 17:21:29 -0600 (Tue, 15 Jan 2008) | 2 lines

Issue ASTERISK-6481 - Ignore 183 Session Progress without SDP (imported from 1.2 rev 12458)

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=12459