Hi, I'm handling with a Nortel CS2K softswitch that sends me incorrect SDP's since it uses LF at the end of each line in SDP instead of CRLF (as it's mandatory according to the SDP grammar). AFAIK some phones can fail when receiving this incorrect SDP.
Unfortunatelly I can't try a workaround now but I'm thinkink about using "textmodules" in this way:
if ($si == NORTEL_CS2K_IP) replace_body("\n$", "\r\n");
By your experience, should it work? I assume that "Content-Length" is automatically updated before the message leaves OpenSer. So just it, should it work?
Thanks a lot.
El Thursday 15 May 2008 12:14:19 Iñaki Baz Castillo escribió:
El Thursday 15 May 2008 11:42:46 Iñaki Baz Castillo escribió:
if ($si == NORTEL_CS2K_IP) replace_body("\n$", "\r\n");
I mean:
replace_body_all("\n$", "\r\n");
Better:
replace_body_all("\n", "\r\n");
because $ is the end of the SDP and not the end of each line.
Hi all,
I'm using openser13 and met an issue when saving contact into my sql database upon registration refresh.
After doing several registrations, sometimes my NAT loose the connection and change the port number (rport) that was used in previous signalling exchange.
old REGISTER: contact: with port 6010 answer: contact: with port 6010 new REGISTER refresh: contact: with port 1223 answer contact: with port 6010 (old one) + contact with port 1223 (new one)
In the above case, this result in a new contact added in the database while I'm expecting the server to replace the previous address with the new one.
I know that the rfc is not specifying such behavior: the expected processing in the specification is the one done by ser, but by experience, if a contact was changed within a refresh, it's because of a NAT reboot/issue or because of roaming.
That said, I wish to: 1: remove the old binding with call-id of the new REGISTER refresh 2: add my new binding.
I've written a proxy before and that was my default behavior ;) I'm not even finding a use case where this could break any compliant app.
Any way to do this? tks, Aymeric MOIZARD / ANTISIP amsip - http://www.antisip.com osip2 - http://www.osip.org eXosip2 - http://savannah.nongnu.org/projects/exosip/
Hi Aymeric,
What it happens is correct and fully complaint to RFC 3261.
A client may register several contacts for the same users, and each distinct contact forms a separate location registration.
Registering a new contact has no effect on the already existing (registered) contacts - it is like 2 phones registered for the same account.
If you want to replace a contact, the device needs to specifically un-register the previous contact.
Regards, Bogdan
Aymeric Moizard wrote:
Hi all,
I'm using openser13 and met an issue when saving contact into my sql database upon registration refresh.
After doing several registrations, sometimes my NAT loose the connection and change the port number (rport) that was used in previous signalling exchange.
old REGISTER: contact: with port 6010 answer: contact: with port 6010 new REGISTER refresh: contact: with port 1223 answer contact: with port 6010 (old one) + contact with port 1223 (new one)
In the above case, this result in a new contact added in the database while I'm expecting the server to replace the previous address with the new one.
I know that the rfc is not specifying such behavior: the expected processing in the specification is the one done by ser, but by experience, if a contact was changed within a refresh, it's because of a NAT reboot/issue or because of roaming.
That said, I wish to: 1: remove the old binding with call-id of the new REGISTER refresh 2: add my new binding.
I've written a proxy before and that was my default behavior ;) I'm not even finding a use case where this could break any compliant app.
Any way to do this? tks, Aymeric MOIZARD / ANTISIP amsip - http://www.antisip.com osip2 - http://www.osip.org eXosip2 - http://savannah.nongnu.org/projects/exosip/
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users
On Mon, 26 May 2008, Bogdan-Andrei Iancu wrote:
Hi Aymeric,
What it happens is correct and fully complaint to RFC 3261.
That's what I said in my mail: however I wish to have a solution for the specific case I'm describing: if the contact is coming with a common Call-ID, then the port number shouldn't be checked.
A client may register several contacts for the same users, and each distinct contact forms a separate location registration.
When both contact comes in different REGISTER and use the same transport with port being the only difference, then there is 99,99% chance that the old binding should be replaced by the new one.
Registering a new contact has no effect on the already existing (registered) contacts - it is like 2 phones registered for the same account.
It's different because both contact comes with same Call-ID in the case I describe.
PAT is the origin of most deployment issue. I've always think the rfc was not enough talking about the call-id/contact relation in registers.
For me, REGISTER should always contains all the active bindings at the same time: ie REGISTERs (one call-id) will never periodically register ONE contact and then another valid ONE. The real case is to REGISTER both of them in each refresh.
Another origin of problems is when other nasty "on-the-path" application are modifying the contacts: then contact arrive as "different" but this was not intended...
Tks for your comments. Aymeric
If you want to replace a contact, the device needs to specifically un-register the previous contact.
Regards, Bogdan
Aymeric Moizard wrote:
Hi all,
I'm using openser13 and met an issue when saving contact into my sql database upon registration refresh.
After doing several registrations, sometimes my NAT loose the connection and change the port number (rport) that was used in previous signalling exchange.
old REGISTER: contact: with port 6010 answer: contact: with port 6010 new REGISTER refresh: contact: with port 1223 answer contact: with port 6010 (old one) + contact with port 1223 (new one)
In the above case, this result in a new contact added in the database while I'm expecting the server to replace the previous address with the new one.
I know that the rfc is not specifying such behavior: the expected processing in the specification is the one done by ser, but by experience, if a contact was changed within a refresh, it's because of a NAT reboot/issue or because of roaming.
That said, I wish to: 1: remove the old binding with call-id of the new REGISTER refresh 2: add my new binding.
I've written a proxy before and that was my default behavior ;) I'm not even finding a use case where this could break any compliant app.
Any way to do this? tks, Aymeric MOIZARD / ANTISIP amsip - http://www.antisip.com osip2 - http://www.osip.org eXosip2 - http://savannah.nongnu.org/projects/exosip/
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users