Okay,
Since I've been unable to pass SIP MESSAGEs back and forth through our server, but knowing full well that I once was able, I decided to take our configuration and remove everything in it that we've added over time (slowly regressing back to the beginning of our SVN code repository for the SER config) and see if I could tell what had changed so that I can no longer pass a SIP MESSAGE back and forth between clients.
It didn't work.
SO... I decided to take the hello-world config and try with it.
No luck.
What am I missing here? Is there some special handling that is needed to pass a SIP MESSAGE in SER 0.9.6? Is there a chance that something basic would have changed between 0.9.0 (our original server) and 0.9.6 that would have broken our ability to pass the MESSAGE method without additional tinkering?
Sure, if I put in a block like:
if(method=="MESSAGE") { sl_send_reply("200", "OK"); };
... it's clear the message gets there and I receive the 200 OK, but of course it doesn't go anywhere after that.
Without that block in there, it ends up getting a 513 Message too big response (which seems to be somewhat of a default for messages that don't end up getting handled in any other way that SER understands).
I'm now completely at a loss. Pointers. Tips. Snide remarks. Anything helpful would be greatly appreciated.
N.
A quick look seems to shows that this error is not generated by code; probably there is a check in your script for message size (you can find this check in nearly all sample configs). Or some other SER downstream which returns it?
On 8/16/06, sip sip@arcdiv.com wrote:
Okay,
Since I've been unable to pass SIP MESSAGEs back and forth through our server, but knowing full well that I once was able, I decided to take our configuration and remove everything in it that we've added over time (slowly regressing back to the beginning of our SVN code repository for the SER config) and see if I could tell what had changed so that I can no longer pass a SIP MESSAGE back and forth between clients.
It didn't work.
SO... I decided to take the hello-world config and try with it.
No luck.
What am I missing here? Is there some special handling that is needed to pass a SIP MESSAGE in SER 0.9.6? Is there a chance that something basic would have changed between 0.9.0 (our original server) and 0.9.6 that would have broken our ability to pass the MESSAGE method without additional tinkering?
Sure, if I put in a block like:
if(method=="MESSAGE") { sl_send_reply("200", "OK"); };
... it's clear the message gets there and I receive the 200 OK, but of course it doesn't go anywhere after that.
Without that block in there, it ends up getting a 513 Message too big response (which seems to be somewhat of a default for messages that don't end up getting handled in any other way that SER understands).
I'm now completely at a loss. Pointers. Tips. Snide remarks. Anything helpful would be greatly appreciated.
N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
There is a check for message size (which is the same as it's always been):
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
Modifying this has no real effect on the return, and the MESSAGE being sent shouldn't in any way have gone beyond that size. That check's always been there, though, and I know this has worked before... so I'm wondering what might have changed, if anything... or if there's a 'standard' way of handling SIP MESSAGE methods that I'm completely missing.
N.
On Wed, 16 Aug 2006 19:59:58 +0200, Weiter Leiter wrote
A quick look seems to shows that this error is not generated by code;probably there is a check in your script for message size (you can findthis check in nearly all sample configs). Or some other SER downstreamwhich returns it?
On 8/16/06, sip sip@arcdiv.com wrote:Okay,
Since I've been unable to pass SIP MESSAGEs back and forth through our server, but knowing full well that I once was able, I decided to take our configuration and remove everything in it that we've added over time (slowly regressing back to the beginning of our SVN code repository for the SER config) and see if I could tell what had changed so that I can no longer pass a SIP MESSAGE back and forth between clients.
It didn't work.
SO... I decided to take the hello-world config and try with it.
No luck.
What am I missing here? Is there some special handling that is needed to pass a SIP MESSAGE in SER 0.9.6? Is there a chance that something basic would have changed between 0.9.0 (our original server) and 0.9.6 that would have broken our ability to pass the MESSAGE method without additional tinkering?
Sure, if I put in a block like:
if(method=="MESSAGE") { sl_send_reply("200", "OK"); };
... it's clear the message gets there and I receive the 200 OK, but of course it doesn't go anywhere after that.
Without that block in there, it ends up getting a 513 Message too big response (which seems to be somewhat of a default for messages that don't end up getting handled in any other way that SER understands).
I'm now completely at a loss. Pointers. Tips. Snide remarks. Anything helpful would be greatly appreciated.
N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
In cases where I'm lost, I just use a brute force method: search for every place where this 'too big' appears (code script), add it a number and see what pops up...
On 8/16/06, sip sip@arcdiv.com wrote:
There is a check for message size (which is the same as it's always been):
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
Modifying this has no real effect on the return, and the MESSAGE being sent shouldn't in any way have gone beyond that size. That check's always been there, though, and I know this has worked before... so I'm wondering what might have changed, if anything... or if there's a 'standard' way of handling SIP MESSAGE methods that I'm completely missing.
N.
On Wed, 16 Aug 2006 19:59:58 +0200, Weiter Leiter wrote*
A quick look seems to shows that this error is not generated by code;
probably there is a check in your script for message size (you can find this check in nearly all sample configs). Or some other SER downstream which returns it?
On 8/16/06, sip sip@arcdiv.com wrote:
Okay,
Since I've been unable to pass SIP MESSAGEs back and forth through our
server,
but knowing full well that I once was able, I decided to take our configuration and remove everything in it that we've added over time
(slowly
regressing back to the beginning of our SVN code repository for the
SER
config) and see if I could tell what had changed so that I can no
longer pass
a SIP MESSAGE back and forth between clients.
It didn't work.
SO... I decided to take the hello-world config and try with it.
No luck.
What am I missing here? Is there some special handling that is needed
to pass
a SIP MESSAGE in SER 0.9.6? Is there a chance that something basic
would have
changed between 0.9.0 (our original server) and 0.9.6 that would have
broken
our ability to pass the MESSAGE method without additional tinkering?
Sure, if I put in a block like:
if(method=="MESSAGE") { sl_send_reply("200", "OK"); };
... it's clear the message gets there and I receive the 200 OK, but of
course
it doesn't go anywhere after that.
Without that block in there, it ends up getting a 513 Message too big
response
(which seems to be somewhat of a default for messages that don't end
up
getting handled in any other way that SER understands).
I'm now completely at a loss. Pointers. Tips. Snide remarks. Anything
helpful
would be greatly appreciated.
N. _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
sip wrote:
There is a check for message size (which is the same as it's always been):
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
Why don't you capture the SIP packet with Ethereal an verify if it is indeed greater that 2048 bytes. I really doubt it. I suspect your packet is looping several times on the same SER and growing in size as more headers are added until it eventually reaches this huge size.
Modifying this has no real effect on the return, and the MESSAGE being sent shouldn't in any way have gone beyond that size. That check's always been there, though, and I know this has worked before... so I'm wondering what might have changed, if anything... or if there's a 'standard' way of handling SIP MESSAGE methods that I'm completely missing.
N.
That appears to be exactly what's happening.... it loops because there doesn't seem to be any part of the code where MESSAGE is handled. It's ignored by the t_relay, and doesn't have a specific handling block of any kind, so it's just looped around until it's too big to deal with.
I just don't know what portion of the code is SUPPOSED to handle it, so I'm not sure where to go about looking for the source of why everything ignores it.
N.
On Wed, 16 Aug 2006 14:32:41 -0400, Andres wrote
sip wrote:
There is a check for message size (which is the same as it's always been):
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
Why don't you capture the SIP packet with Ethereal an verify if it is indeed greater that 2048 bytes. I really doubt it. I suspect your packet is looping several times on the same SER and growing in size as more headers are added until it eventually reaches this huge size.
Modifying this has no real effect on the return, and the MESSAGE being sent shouldn't in any way have gone beyond that size. That check's always been there, though, and I know this has worked before... so I'm wondering what might have changed, if anything... or if there's a 'standard' way of handling SIP MESSAGE methods that I'm completely missing.
N.
-- Andres Technical Support http://www.telesip.net
MESSAGE has to be looked up as INVITE and is then handled by t-relay. It does not create a dialog. If you just relay it, it will just be sent according to the o riginal request uru. g-)
------- Original message ------- From: sip sip@arcdiv.com Sent: 16.8.'06, 16:04
That appears to be exactly what's happening.... it loops because there doesn't seem to be any part of the code where MESSAGE is handled. It's ignored by the t_relay, and doesn't have a specific handling block of any kind, so it's just looped around until it's too big to deal with.
I just don't know what portion of the code is SUPPOSED to handle it, so I'm not sure where to go about looking for the source of why everything ignores it.
N.
On Wed, 16 Aug 2006 14:32:41 -0400, Andres wrote
sip wrote:
There is a check for message size (which is the same as it's always been):
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
Why don't you capture the SIP packet with Ethereal an verify if it is indeed greater that 2048 bytes. I really doubt it. I suspect your packet is looping several times on the same SER and growing in size as more headers are added until it eventually reaches this huge size.
Modifying this has no real effect on the return, and the MESSAGE being sent shouldn't in any way have gone beyond that size. That check's always been there, though, and I know this has worked before... so I'm wondering what might have changed, if anything... or if there's a 'standard' way of handling SIP MESSAGE methods that I'm completely missing.
N.
-- Andres Technical Support http://www.telesip.net
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
How are you handling the MESSAGE packets? You should be able to simply do;
if (method == "MESSAGE") { if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; t_relay(); break; };
It all really depends on your config. We don't handle MESSAGE explicitly, instead we explicitly handle methods that require special handling (INVITE, REGISTER, etc) and then all other messages pass through the bottom of route[0] which looks like:
if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }
t_relay();
-Evan
sip wrote:
That appears to be exactly what's happening.... it loops because there doesn't seem to be any part of the code where MESSAGE is handled. It's ignored by the t_relay, and doesn't have a specific handling block of any kind, so it's just looped around until it's too big to deal with.
I just don't know what portion of the code is SUPPOSED to handle it, so I'm not sure where to go about looking for the source of why everything ignores it.
N.
On Wed, 16 Aug 2006 14:32:41 -0400, Andres wrote
sip wrote:
There is a check for message size (which is the same as it's always been):
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
Why don't you capture the SIP packet with Ethereal an verify if it is indeed greater that 2048 bytes. I really doubt it. I suspect your packet is looping several times on the same SER and growing in size as more headers are added until it eventually reaches this huge size.
Modifying this has no real effect on the return, and the MESSAGE being sent shouldn't in any way have gone beyond that size. That check's always been there, though, and I know this has worked before... so I'm wondering what might have changed, if anything... or if there's a 'standard' way of handling SIP MESSAGE methods that I'm completely missing.
N.
-- Andres Technical Support http://www.telesip.net
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Absolutely bizarre. Now, see... we were originally handling it the way you're handling it (and it didn't work).
I tried it as a separate block, though (as you described) and it works like a charm. Thanks a bunch, Evan.
Now I have to go through and figure out why it wansn't working the other way.
N.
On Thu, 17 Aug 2006 10:18:10 -0400, Evan Borgström wrote
How are you handling the MESSAGE packets? You should be able to simply do;
if (method == "MESSAGE") { if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }; t_relay(); break; };
It all really depends on your config. We don't handle MESSAGE explicitly, instead we explicitly handle methods that require special handling (INVITE, REGISTER, etc) and then all other messages pass through the bottom of route[0] which looks like:
if (!lookup("location")) { sl_send_reply("404", "Not Found"); break; }
t_relay();
-Evan
sip wrote:
That appears to be exactly what's happening.... it loops because there doesn't seem to be any part of the code where MESSAGE is handled. It's ignored by the t_relay, and doesn't have a specific handling block of any kind, so it's just looped around until it's too big to deal with.
I just don't know what portion of the code is SUPPOSED to handle it, so I'm not sure where to go about looking for the source of why everything
ignores it.
N.
On Wed, 16 Aug 2006 14:32:41 -0400, Andres wrote
sip wrote:
There is a check for message size (which is the same as it's always been):
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
Why don't you capture the SIP packet with Ethereal an verify if it is indeed greater that 2048 bytes. I really doubt it. I suspect your packet is looping several times on the same SER and growing in size as more headers are added until it eventually reaches this huge size.
Modifying this has no real effect on the return, and the MESSAGE being sent shouldn't in any way have gone beyond that size. That check's always been there, though, and I know this has worked before... so I'm wondering what might have changed, if anything... or if there's a 'standard' way of handling SIP MESSAGE methods that I'm completely missing.
N.
-- Andres Technical Support http://www.telesip.net
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers