When SIP-client app lost network, other client can send REGISTER with the same IP:PORT. You can resolve this problem by usin this patch.
patch for usrloc module
could you explain a bit more in details what the patch provides? an example will be really helpful here.
I'm asking as the I want to be sure that whatever change you need, it is not against the RFC3261 (on how the user registration and contact matching works).
Thanks and regards,
Step 1: CLIENT1 send REGISTER from 10.10.10.10:1234.
Step 2: CLIENT1 lost network
Step 3: CLIENT2 connecting to network and receive IP 10.10.10.10
Step 4: CLIENT2 connecting to SIP server with this IP and port 1234 (He send REGISTER from 10.10.10.10:1234)
Step 5: somebody calls to CLIENT1 -> CLIENT2 has incoming call because he has ip:port like CLIENT1 and REGISTER timeout for CLIENT1 was not expired.
This problem we have using mobile WiMAX network. This patch resolve this problem:
when CLIENT2 send REGISTER, SIP server delete record for CLIENT1 from database. We set flag db_mode=DB_ONLY for usrloc module and this patch can be using only with this flag.
I see. But such a auto-removal will affect devices with multiple lines. Ex:
1) device registers Line 1 (AOR1) with contact 10.10.10.10:1234
2) device registers Line 2 (AOR2) with contact 10.10.10.10:1234 ->usrloc will remove the registration of the first line, as it has the same IP and port
Vladimir, you are "solving" a problem which is not a problem. This just solves a *client* problem in your escenario but breaks RFC 3261 specifications since multiple AoR registrations are allowed from the same address:port.
I use Tinkle softphone which allows me having 10-50 different SIP accounts registered at the same time, and it uses the same address:port for all. This is perfectly valid according to RFC 3261 and your patch woudl break it.
Unfortunately, the behaviour introduced by this patch breaks the RFC3261 specs.
Vladimir, if you find a different solution to your problem, please open a new report.
Log in to post a comment.