Cisco Router and 180 Ringing

Dear all,

I am having a problem with a cisco router that doesn’t support the 180 Ringing without Session Description.

I have tried to go directly inside the asterisk code to find a way to remove the sending of the 180 Ringing (and only this) to a specific customer (with, if possible, a way to configure a variable in the sip.conf).

We looked for hours and hours and found just this function that finally looks like to mean that 180 Ringing is ALWAYS sent, no matter how you did setup progressinband (yes/no/never).

        case AST_CONTROL_RINGING:
                if (ast->_state == AST_STATE_RING) {
                        p->invitestate = INV_EARLY_MEDIA;
                        if (!ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) ||
                            (ast_test_flag(&p->flags[0], SIP_PROG_INBAND) == SIP_PROG_INBAND_NEVER)) {
                                /* Send 180 ringing if out-of-band seems reasonable */
                                transmit_response(p, "180 Ringing", &p->initreq);
                                ast_set_flag(&p->flags[0], SIP_RINGING);
                                if (ast_test_flag(&p->flags[0], SIP_PROG_INBAND) != SIP_PROG_INBAND_YES)
                                        break;
                        } else {
                                /* Well, if it's not reasonable, just send in-band */
                        }
                }
                res = -1;
                break;

This code can be found in /usr/src/asterisk-1.4.13/channels/chan_sip.c

Is there any known solution concerning this issue with Cisco Routers ?

Thank you !

SO if 180 Ringing does not work, then 183 Session Progress must work. Have you tried Progress() in the dial plan?

The Asterisk is used as a Gateway between two SIP clients. We forward calls from for example Skype to another SIP customer receiving the calls firstly on a Cisco router that refuses the calls when seeing a 180 Ringing without DSP. If the 180 Ringing was with DSP this would be working but it’s not.

So … I don’t think Progress() should be the solution but I can test …

Any other idea or same issue related to this and solved ?