Matteo, your fix looks like a good temporary solution, but I don't want to
merge it with CVS because the *right* thing that I *need* to do is to
implement retransmissions on SIP. Once retransmissions are in place, then
we can keep the channel around until we receive the 487 back that we
expect. There simply is no substitute for that, and Asterisk's SIP stack
is mature enough (and deployed enough) that it's time we do the right
thing.
Mark
On 18 Mar 2003, Brancaleoni Matteo wrote:
> Ok guys, that's it a patch for chan_sip.c
>
> The problem is: some devices transmit late packets,
> even when asterisk has already destroyed the channels.
> For example 487 is sent by various ipphones , like
> kphone, snom & some fxs-sip gw) when a request
> is cancelled by the caller (for eg. when the
> caller Cancel an Invite Request). But since
> 487 is sent *after* cancel , the sip channel
> are already destroyed to asterisk can't ack them.
> That's wrong, since some phone just ignore
> the lacking of ack, other keep ringing if not
> ack'ed .
>
> So my patch just adds a timer to do_monitor,
> in order to wait 10 seconds before destroying
> the sip channel.
>
> Probably that will fix also some reported problems
> on cisco phones that go on ringing even if the caller
> hangs up.
>
> Lemme know.
>
> P.S. I'm not a C-guru . The patch works well , but
> if someone wants to improve it, feel free to blame me.
>
> Matteo
>
> Il lun, 2003-03-17 alle 18:06, Matteo Brancaleoni ha scritto:
> > I've a sip phone that when called,
> > if not answered and you hangup
> > on the caller side, sends out
> > "487 Request Terminated" .
> > But seems that * don't get that
> > message (I think * ignore it)
> > so the phone don't get an OK
> > and keep ringing until timeout,
> > even if the caller has hanged
> > up.
> >
> > Could that be added to *?
> > Attached some debug.
> >
> > Matteo Brancaleoni
> > mbrancaleoni@espia.it
> > Emmegi System Administrator
> >
> > EspiA - EMMEGI Srl - e*solution provider
> > Uffici: Via Pascoli, 37
> > 20129 Milano - Italy
> > Sede Legale: Corso Sempione 67
> > 20149 Milano - Italy
> > Tel. +39 0270633354
> > Fax. +39 0245487890
> > http://www.espia.it
>