A number is dialed on a phone and the INVITE goes:

PHONE => ASTERISK => SER => PHONE

 

If the other phone doesn't pickup and the calling phone is hung up, it sends a BYE to Asterisk.

Asterisk sends a CANCEL to SER. SER cancels its transaction but it doesn't relay the CANCEL to the phone so it keeps ringing.

 

Am I missing something here?