--- asterisk-13.4.0.original/channels/sig_ss7.c 2015-06-04 16:20:51.000000000 +0300 +++ asterisk-13.4.0/channels/sig_ss7.c 2016-03-21 14:50:12.207114498 +0300 @@ -2002,8 +2002,19 @@ p->call_level = SIG_SS7_CALL_LEVEL_PROCEEDING; } sig_ss7_set_dialing(p, 0); + switch(e->acm.called_party_status_ind) { + case 0: + /* No indication */ + if(e->acm.inband_available) { + ast_debug(1, "Queuing frame PROGRESS on CIC %d due inband available pattern.\n", p->cic); + sig_ss7_queue_control(linkset, chanpos, AST_CONTROL_PROGRESS); + p->progress = 1; + sig_ss7_open_media(p); + } + break; + case 1: /* Send alerting if subscriber is free */ - if (e->acm.called_party_status_ind == 1) { + { if (p->call_level < SIG_SS7_CALL_LEVEL_ALERTING) { p->call_level = SIG_SS7_CALL_LEVEL_ALERTING; } @@ -2014,6 +2025,10 @@ } sig_ss7_queue_control(linkset, chanpos, AST_CONTROL_RINGING); } + break; + default: + break; + } p->echocontrol_ind = e->acm.echocontrol_ind; sig_ss7_unlock_private(p); break;