I found a situation where some SIP phones worked and some don't.
After a while I found that, because of the added bytes of the "Proxy-Authorization:" header, the messages generated by some sip phones were larger than 1480 bytes and this caused the connection with the PSTN gateway to not work.
I tried to forwad the message with the t_relay_to_tcp() function, but by the ngrep output it seems that it still uses UDP (but I may be wrong).
Anyway, what can be done in this situations?
What about a SER module that rewrite all header field names with their compact form? Often, the message is only a few bytes more than 1480, so this could be a solution...
What do you think?
Bye.
Hi Federico,
Had the same problems. Solutions that work:
- you have somewhere MTU limit of 1500 bytes. Check where you have this limit, it is possible you will be able to send bigger messages after changes
- use SER's consume_credentials() function to remove Authorization or Proxy-Authorization HF after use
- configure all phones to use and describe in SDP only 1 or 2 codecs (decide about your system codec, delete the rest from UAs)
- write your small function (in example in nathelper module) to edit SDP and remove unused codecs when messages go through proxy
Arek,
----- Original Message ----- From: "Federico Giannici" giannici@neomedia.it To: "SER Users" serusers@lists.iptel.org Sent: Thursday, November 03, 2005 1:24 AM Subject: [Serusers] Packets fragmentation and message reduction
I found a situation where some SIP phones worked and some don't.
After a while I found that, because of the added bytes of the "Proxy-Authorization:" header, the messages generated by some sip phones were larger than 1480 bytes and this caused the connection with the PSTN gateway to not work.
I tried to forwad the message with the t_relay_to_tcp() function, but by the ngrep output it seems that it still uses UDP (but I may be wrong).
Anyway, what can be done in this situations?
What about a SER module that rewrite all header field names with their compact form? Often, the message is only a few bytes more than 1480, so this could be a solution...
What do you think?
Arek Bekiersz wrote:
Hi Federico,
Had the same problems. Solutions that work:
- you have somewhere MTU limit of 1500 bytes. Check where you have this
limit, it is possible you will be able to send bigger messages after changes
- use SER's consume_credentials() function to remove Authorization or
Proxy-Authorization HF after use
- configure all phones to use and describe in SDP only 1 or 2 codecs (decide
about your system codec, delete the rest from UAs)
- write your small function (in example in nathelper module) to edit SDP and
remove unused codecs when messages go through proxy
OK, but what about the idea of rewriting all header field names using the compact form? It seems to me less traumatic than altering the SDP data.
Are there C functions in SER that replace a header name (and only the name, not the value) with a different one? Alternatively, are there C functions to find the pointer to the header field with a given name, delete it and insert a new one?
Thanks.
----- Original Message ----- From: "Federico Giannici" giannici@neomedia.it To: "SER Users" serusers@lists.iptel.org Sent: Thursday, November 03, 2005 1:24 AM Subject: [Serusers] Packets fragmentation and message reduction
I found a situation where some SIP phones worked and some don't.
After a while I found that, because of the added bytes of the "Proxy-Authorization:" header, the messages generated by some sip phones were larger than 1480 bytes and this caused the connection with the PSTN gateway to not work.
I tried to forwad the message with the t_relay_to_tcp() function, but by the ngrep output it seems that it still uses UDP (but I may be wrong).
Anyway, what can be done in this situations?
What about a SER module that rewrite all header field names with their compact form? Often, the message is only a few bytes more than 1480, so this could be a solution...
What do you think?
Hi Federico,
1. Do you use "consume_credentials()" function in first place? I repeat: this function removes Authorization header fields after using them.
It can give you more than 200 bytes of margin in typical situation. It is more than enough. What's more, you don't usually want to expose details of your authorization mechanism to outside world. Although we are talking about Digest authorization scheme, it is still interesting for malicious user to know how do you perform authorization and what are digest user names....
2. IMHO e, converting header field names to abbreviated form is actually <more> traumatic, than editing SDP. I rarely see UAs that use abbreviated form of SIP header fields.
-- Regards, Arek
----- Original Message ----- From: "Federico Giannici" giannici@neomedia.it To: "SER Users" serusers@lists.iptel.org Sent: Thursday, November 03, 2005 4:33 PM Subject: Re: [Serusers] Packets fragmentation and message reduction
OK, but what about the idea of rewriting all header field names using the compact form? It seems to me less traumatic than altering the SDP data.
Are there C functions in SER that replace a header name (and only the name, not the value) with a different one? Alternatively, are there C functions to find the pointer to the header field with a given name, delete it and insert a new one?
Thanks.
Arek Bekiersz wrote:
Hi Federico,
- Do you use "consume_credentials()" function in first place?
I repeat: this function removes Authorization header fields after using them.
Yes I did. But then I need the extra bytes to add a new Authorization header for the next hop too!
I rarely see UAs that use abbreviated form of SIP header fields.
Do you mean that they don't recognize the compact form? It should be mandatory by RFC...
Bye.
Hi Federico,
there are a few functions you could use.. f.eks search_reaplce, subst etc.
check textops.
- Atle
* Federico Giannici giannici@neomedia.it [051103 18:52]:
Arek Bekiersz wrote:
Hi Federico,
- Do you use "consume_credentials()" function in first place?
I repeat: this function removes Authorization header fields after using them.
Yes I did. But then I need the extra bytes to add a new Authorization header for the next hop too!
I rarely see UAs that use abbreviated form of SIP header fields.
Do you mean that they don't recognize the compact form? It should be mandatory by RFC...
Bye.
-- ___________________________________________________ __ |- giannici@neomedia.it |ederico Giannici http://www.neomedia.it ___________________________________________________
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Federico,
On Thursday 03 November 2005 18:51, Federico Giannici wrote:
Arek Bekiersz wrote:
I rarely see UAs that use abbreviated form of SIP header fields.
Do you mean that they don't recognize the compact form? It should be mandatory by RFC...
from my experience I would bet that you will encounter a lot of interop problems, when you use compact headers. There is a lot of things mandatory in 3261, but only a very low percentage of the devices on the market implement it, e.g. TCP, TLS, ...
Nils
Hello everybody,
I have a question about the conference server. I wanted how the mixer part is done. Specifically, how it could be implemented. For example, should the input streams (and so the input samples) from different participants be interleaved to build the output stream? or should they be added in linear way? are there other alternatives?
Thanks in advance!
_______________________________________________
Serusers mailing list serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers