[Users] Call not torn down when CANCEL sent before INVITE message is finished being processed
Klaus Darilion
klaus.mailinglists at pernau.at
Wed Oct 5 12:00:52 CEST 2005
Bogdan-Andrei Iancu wrote:
> Hi Tavis,
>
> please see my inline comments.
>
> regards,
> bogdan
>
> Tavis P wrote:
>
>> With the latest CVS build of OSER, when an INVITE is sent followed by a
>> CANCEL, before OSER has finished processing the initial INVITE, the
>> outbound call is not torn down, and SER routes the CANCEL message to
>> itself.
>>
> this is more a logical problem and not sure how it can be fixed (if it
> can be fixed). The only idea it come into my mind is to delay the CANCEL
> that does not match a transaction....but is quite ugly.
What about forwarding the CANCEL and keept in in memory. For every
incoming INVITE we will first check if there is already a CANCEL for this.
>> I have a development cluster of mediaproxy servers setup and one of them
>> was taken offline but left in the loop which increased the time it took
>> for a message to be processed which is how i came across this situation
>> (it took some seconds before the INVITE was able to be transmitted to
>> the nexthop_proxy)
>>
>>
> what you can do is to force transaction creation before any
> time-consuming operations (use t_newtran to create the transaction) -
> but be very, very carefully - you will have to use exclusively statefull
> functions and what is more important, all later changes over the message
> will not be saved into transaction.
>
> .....and coming back to the idea: create the transaction, do all
> time-consuming operations and forward. If in the mean while you get a
> CANCEL, it will match the transaction, but it will not be forwarded
> since there is no branch (no forward done); but once you get a reply for
> the INVITE, OpenSER will remember that it was CANCEL and generate one -
> this is a new feature of this release ;)
ugly
regards
klaus
More information about the Users
mailing list