[OpenSER-Devel] [Serdev] Possible bug in the tm module in the presence of packet loss/branches
Dan Pascu
dan at ag-projects.com
Thu Mar 13 12:01:13 CET 2008
On Thursday 13 March 2008, Rick van Rein wrote:
> Dan,
>
> But, to get involved with the discussion itself, what you are trying to
> do is deny relativity.
I don't think I am. I'm not speaking of the race condition case where the
200 OK and the CANCEL arrive at the same time and it order of them can be
viewed as relative. I can live with the uncertainty in that case and
users can live with that as well. The issue I raised is with a 200 OK
that can come much later (10-15 seconds later) and still establish a
connection even though a CANCEL was issued 10 seconds before it. There is
no relativity involved there, the order of events is the same for all
observers involved, yet a user request to cancel the call was ignored
because some provisional reply was not received. No user would accept
that he has no control over establishing a call and that his choice to
end it is ignored.
What I would find useful in this case is that once a CANCEL has arrived,
all call setup activities should cease on all branches, with or without
provisional replies and if a 200 OK comes later it should be ignored and
instead a CANCEL should be forwarded to indicate that the 200 OK is late
and is no longer accepted by the originator. Maybe this is not specified
by the RFC, but I believe it to be a much better choice than to forward
the 200 OK, then ACK it and then send a BYE to close the call.
> Also technically, you could setup a maximum to the amount of money to
> be taken from a customer's account for things like call setup or
> minutes. If the numbers published their cost somewhere, you could
> simply deny their use. We have a phone system in the Netherlands with
> special "suspect" number ranges (090x "area"codes). And our operators
> always mention the price of those numbers along with the number itself.
>
> Legally, I am tempted to say that the caller took the initiative to
> ring a number and he should have known better than to ring such an
> expensive number. But that thought may be the result of living in the
> Netherlands, where operators publish the call price alongside their
> numbers.
I don't know how to say this, because I already said it more than 5 times.
The issue is _NOT_ about money or a misplaced accounting entry I can
correct by hand. The issue is about the user not having control over
canceling his call. Consider this example that involved no money or
highly priced destinations.
I call a support center for some service, which is listed as being free of
charge. An initial prompt informs me that if I accept the call, the call
will be recorded and my SIP address as well as any information I passed
on during the conversation can be shared with the operator's partners for
marketing purposes. I do not accept the terms and cancel the call, but
the system ignores my cancel and still connects me to the service, even
though it is just to issue a BYE to close it, but I still got connected
like if I accepted the terms. I had no way of knowing in advance about
the terms, there is no price listed anywhere, so how can I chose not to
dial the number in the first place? Do you want to spend you time
cleaning this situation up, looking up for SIP experts that can testify
that you were not at fault, that there was no race condition, that is
just a flaw in the protocol and then trying to get that operator to
remove you from their databases and whomever they gave those databases
to, when the wrong is already done and you are already targeted by
marketing campains that ring your phone at whatever time they please?
On a different perspective, how would you feel if your mobile phone
operator would tell you that pressing the "end call" button on your
mobile may be ignored? Would you want to use such a service?
Because with SIP, that is a very possibility.
--
Dan
More information about the Devel
mailing list