HI all, I've read the solutions proposed at http://www.openser.org/dokuwiki/doku.php/examples:caller-callee-behind-same-... 2 client behind the same NAT. The clients may be behind the same NAT, but on different sub-net (for example, one on 192.168.10.x and another on 192.168.2.x). In this case, checking source and destination IP, to discriminate against behind or not the same NAT, is not enough - they can't reach each othere anyway.
What do you think?
Regards, daniel
Hi,
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?
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??
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. 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?
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).
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?
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.
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.
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.
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.
El Wednesday 14 November 2007 10:59:39 Daniel escribió:
HI all, I've read the solutions proposed at http://www.openser.org/dokuwiki/doku.php/examples:caller-callee-behind-same -natregarding 2 client behind the same NAT. The clients may be behind the same NAT, but on different sub-net (for example, one on 192.168.10.x and another on 192.168.2.x). In this case, checking source and destination IP, to discriminate against behind or not the same NAT, is not enough - they can't reach each othere anyway.
What do you think?
In this particular case you just shouldn't leave direct RTP, so you should active RtpProxy in this case.
Another better solution could be allow direct routing between your subnets.