Valter, <br />you must drop the early-media call on the dial application, not directly in chan_sip.c<br /><br />No change should be made in that part of the chan_sip.c code.<br /><br />Att,<br />Rafael Prado Rocchi<br /><br /><br /><br />-------- ORIGINAL MESSAGE --------<br />FROM: Valter Nogueira [valter@fastway.com.br]; <br />TO: Asterisk Developers Mailing List [asterisk-dev@lists.digium.com]; <br />SUBJECT: [asterisk-dev] chan_sip and early media<br />DATE: 02/05/17 - 18:47<br /><br />
<div dir="ltr">I am originating call using early media option.
<div> </div>
<div>Whe I issue a hangup (like in hangup request sip/...) before the b-leg answer, it don't send a SIP CANCEL and the call keeps going on.</div>
<div> </div>
<div>I figured out that it is happening due to sip_hangup() checks:</div>
<div> </div>
<div>
<div><strong>if (p->invitestate < INV_COMPLETED && ast_channel_state(p->owner) != AST_STATE_UP) {</strong></div>
<div><strong>needcancel = TRUE;<br /></strong></div>
<div><strong>ast_debug(4, "Hanging up channel in state %s (not UP)\n", ast_state2str(ast_channel_state(ast)));</strong></div>
<div><strong>}</strong></div>
<div>
<div class="gmail_signature">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div> </div>
<div>And <strong>ast_channel_state(p->owner) == AST_STATE_UP</strong><br /><br /></div>
<div>I guess that early media option puts channel state in AST_STATE_UP</div>
<div> </div>
<div>So, is there a way to not set up channel state to <strong>AST_STATE_UP</strong> in early media? Or the state check could be removed?</div>
<div> </div>
<div>Thank you,</div>
<div> </div>
<div>Valter</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br /><br />----------------------------------------------------------------------------------------<br /><br />