[OpenSER-Users] SIP forking - address a certain client on Openser 1.2

Peter P GMX Prometheus001 at gmx.net
Wed Nov 14 15:02:13 CET 2007


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.
>
>
>   




More information about the Users mailing list