Thanks for your quick reply!
Please find my answers below (comment pst)
Best regards Peter
Iñaki Baz Castillo schrieb:
El Wednesday 14 November 2007 12:12:18 Peter P GMX
escribió:
Hi,
Please, don't reply a message if you are going to init a new
thread, since your message appears in a thread it doesn't below to. Please,
to create a NEW message press "create new mail", but never "Reply"
(except if
you are in fact replying to a message).
(comment pst: ok understood)
we would like
to anable the client to register from 2 IP addresses but
the latest register shall be used for the invite message.
But the problem is - how to tell OpenSER?
A question: why exactly do you need to register a phone if it won't receive
calls?
(comment pst: Firstly: A User shall only register once. But if his SIP
phone crashes (that happens sometimes with this special SIP
application), then he cannot register again until OpenSER detects the
expiration and deregisters the phone (e.g. expires: 10 minutes). So the
user cannot register within the next 10 minutes or so. So we would like
to enable him to register twice: 1.) The old, dead register, which will
automatically expire after some time and 2) the new one.
When now an invite comes in, it shall only be sent to the 2nd register.
So far it isn't complicated.
BUT: He shall not be able to register simultaneously with 2 clients (no
crash scenario) and receive calls on both clients. Only the last
registered client shall receive calls.)
As I have read
in the documnetation there are actually 2 Parameters
which handles this processing
modparam("registrar", "max_contacts", 2)
set the number of parallel registers to 2 (forking)
modparam("registrar", "append_branches", 1)
delivers to all registered branches
modparam("registrar", "append_branches", 0)
delivers only to 1 registered branch
But - which one??
I think it depends on "location" table order. Probably the one with lower
"id"
value.
(comment pst: See below, I checked it)
In the doumentation there is explained that one
can set the q-value. As
the SIP client doesn't know, how many registers already exist he can not
set a dedicated q-value.
If I manually change the q-values in the database (table location) there
is no change in the behaviour. I changed q value from -2 -1 to 0 and 1
and 2. no change.
For that you need to use LCR module and funtions load_contacts() and
next_contacts().
Look for it in the wiki and in Google, there are some working examples.
(comment pst: I had a look at that and read: "If all contacts in the
destination set have the same qvalue, load_contacts() does not do
anything". So it is again the problem for me: How to set different
q-values in this scenario? )
I could not determine, which rule applies, so I
played
with the other parameters:
§ id
§ q (as above)
§ expires
§ last_modified
No change. I can not see, that if I set one of the values to a higher or
a lower value as the second register, it affects the behaviour of
Openser to call a certain SIP client.
Am I think wrong or what can I do to?
I just don't understand why do you need a phone registered if it won't receive
calls. I assume you know that it not necessary to be registered in order to
call.
Regards.