Hello,
just a short reminder that we will close the development of new features
for version 3.2.0 at the end of today, GMT. Then the focus should be on
testing (e.g., bug fixing) and enhancements to documentation.
If you have something to commit, do it today, or if it is impossible for
you to make it in the GIT repo today, let us know and we will see what
can be done. But don't forget, 3.3.0 will come as well in the no-so-far
future.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- http://www.asipto.com
Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kathttp://linkedin.com/in/miconda -- http://twitter.com/miconda
Hi,
Background: Kamailio 1.5.x + rtpproxy
I am not too crazy about telling our customers where we send our
calls. But if they take a look at the sip dialog as it is right now,
they can see our suppliers/carriers IP addresses. What can we do to
mask this, so that the last piece of information stops at our IPs? We
are running rtpproxy for the media - if that makes any difference.
Someone told me I cannot mask anything without moving to Kamailio 3.x
- is that the case?
Thanks!!
//Anders
Hello all,
I would like to use Kamailio to encrypt contents of SIP messages (using SIP TLS) between 2 endpoints, i.e.:
- To use 5061 port instead of 5060 port,
- To use sips uri instead of sip uri...
For example, T1 and T2 communicates with "Server A" like that:
1) T1 and T2 send REGISTER to "Server A"
2) T1 and T2 received 200 OK from "Server A"
...
3) "Server A" sends an INVITE message to T1 and T2
...
4) RTP flow between T1 and T2 (this should not be encrypted)
...
5) "Server A" sends a BYE request to T1 and T2
...
All those exchanges are made on Transport layer TCP or UDP on port 5060.
T1 and T2 are not able to support TLS but "Server A" needs to receive/send messages in SIP TLS.
I would like to insert Kamailio between T1 and "Server A", T2 and "Server B" in order to encrypt contents of SIP messages.
I have some questions about that:
- I think Kamailio can do that but I am not sure, can you confirm that to me please?
- Can I use Kamailio as it is to do that?
- Do I have to add a "Route" header in requests in order that requests between T1 and "Server A" go through Kamailio
or
- Does Kamailio is able to intercept SIP packets automatically (with a certain configuration)?
- Do you know difference between Freeswitch and Kamailio? (because I have seen that Freeswitch can do what I need:
see Figure4: http://wiki.freeswitch.org/wiki/SIP_TLS)
Thank you very much for your input.
Regards
Une messagerie gratuite, garantie à vie et des services en plus, ça vous tente ?
Je crée ma boîte mail www.laposte.net
Hi all,
as announced quite a while ago, I finally checked in code that allows to
produce CDRs (Call Data Records) directly from SIP-Router and generate
logs accordingly.
The main code portion resides in modules_k/acc and provides a switch to
enable basic CDR generation including start time, end time, and
duration. Analogous to the existing logging approach, you may define an
extra parameter covering to-be-included dialog pseudo-variables that
must be assigned in the configuration script. The new code will take
care of transforming the basic and custom CDR fields into CDR logs at
the end of a dialog.
Speaking of dialogs: The implementation relies heavily on the dialog
module. It takes advantage of dialog variables introduces by Carsten
Bock and adds a few more features. Most notably, we had to change the
dialog callback signature to provide both request and response messages.
Having only one of them proved to be insufficient in certain cases; for
instance, a locally generated 408 returned a FAKED_REPLY, thus rendering
it impossible to access dialog variables through the PV framework. Other
modules using dialog callbacks have been updated along the commit,
third-party modules outside the repository will need to do so too (and
think about whether using the request or response is the Right Thing to do).
Due to the changes brought to the dialog module, I pushed the new acc
and dialog code into a separate branch called treimann/acc-cdr. Feel
free to give it a try by consulting the updated documentation and
suggesting (or, if it's good enough, implementing :) ) improvements. A
Kamailio 1.5 backport of the code has been in usage for quite some time
with us, so generally there shouldn't be any major logical flaws.
SIP-Router certainly needs more testing, however, so I'd be glad for any
feedback. My plan is to merge the code into master branch prior to the
3.2 feature freeze, unless significant objections arise.
Finally, big-time credits go to my co-worker Sven Knoblich who is the
main contributor of the code. He's been working on this stuff for the
past few months and dreams in CDRs by now.
Cheers,
--Timo
Hello all,
Can anyone shed some light into the differences between the available LCR modules? We have migrated our config from OpenSIPS where we used the drouting module to Kamailio where we are using the lcr module. Our ruleset is not crazy huge, about 100k entries. Are there compelling reasons to choose one module over the other? Is there one that has the most active development behind it and is a "standard" for the platform or is there one that will be deprecated in the foreseeable future?
Thanks,
Spencer
Hi Jijo,
In my opinion, decode_mime_type is broken, and parse_accept_body does not work as expected.
For example, this is a valid accept header:
accept: text/plain;param=",some value".
but the parse_accept_body will return -1 because the first return value of decode_mime_type is ",some value\"". The second invocation will think "some value\"" is a mime type, which obviously isn't.
I must say I never saw such an accept header, but the standard permits it.
Indeed, a quick fix would be to ignore the return code when comma is found.
This must be done for other functions that call decode_mime_type like has_body(mime) in textops.
This is just my opinion, but I think this solution is a bit hackish since the convention, the "promise" that decode_mime_type should respect is to return a non-NULL, non-end pointer ONLY when there are more mime types in the body. And it doesn't.
A lot of functions that call it rely on this. I think it is easier/more elegant to fix the bug in the decode_mime_type then to change the function convention in all callers.
Also, this might work for most callers, but parse_accept_body will still be buggy, as I explained in the example above.
Cheers,
Marius
________________________________
From: Jijo <realjijo(a)gmail.com>
To: Bucur Marius <bucur_marius_ovidiu(a)yahoo.com>
Sent: Thursday, August 18, 2011 10:48 AM
Subject: Re: [SR-Users] decode_mime_type error
Hi Marius,
Right, the same function is used for Accept and Content-Type.
I don't think there is any change required for parsing Accept. In case of Accept the function decode_mime_type is called in a loop until it find all the media types. On the returning from decode_mime_type(), the main function parse_accept_xxx() checks the pointer is 'comma' or not. if its comma, then the function decode_mime_type called again and find the remaining media types. So i think the existing implementation for Parsing Accept is fine.
The only change required here is not return error for comma while parsing the Content-Type.
Thanks
Jijo
On Thu, Aug 18, 2011 at 12:32 PM, Bucur Marius <bucur_marius_ovidiu(a)yahoo.com> wrote:
Hello Jijo,
>
>You are right, multiple mime-types are not allowed. But it seems like decode_mime_type had the purpose of also parsing the Accept header:
>
>Accept: text/html, image/jpeg, multipart
>
>hence the search for commas :).
>The only function that uses this feature and calls decode_mime_type in a loop is parse_accept_body. The other functions that call decode_mime_type just fail when returning ret != end, and since multiple mime types in content-type are not allowed the behavior is fine.
>The bad thing is the Accept header can have mime parameters too (which can contain comma).
>
>Accept = "Accept" HCOLON [ accept-range *(COMMA accept-range) ]
>accept-range = media-range *(SEMI accept-param)
>media-range = ( "*/*" / ( m-type SLASH "*" ) / ( m-type SLASH m-subtype ) ) *( SEMI m-parameter )
>
>So I think the best thing would be to change decode_mime_type so that it does a more thorough parsing (e.g. check for parameter) hence a parameter value can contain commas (only if quoted).
>
>
>Cheers,
>
>Marius
>________________________________
>From: Jijo <realjijo(a)gmail.com>
>To: Bucur Marius <bucur_marius_ovidiu(a)yahoo.com>; SIP Router - Kamailio (OpenSER) and SIP Express Router (SER) - Users Mailing List <sr-users(a)lists.sip-router.org>
>Sent: Thursday, August 18, 2011 8:04 AM
>Subject: Re: [SR-Users] decode_mime_type error
>
>
>
>Hi Marius,
>
>Thanks for the response.. I checked the other functions, but they don't have the check for ret !=end, but they check the pointer and if it is comma then loop through again until it find all the media types.
>
>As per the RFC3261 multiple media-types are not supoorted in the Content-Type. So I'm not sure why the author used comma to determine multiple media types . Probably just followed like Route or Record-Route headers..??
>
>Content-Type = ( "Content-Type" / "c" ) HCOLON media-type
>media-type = m-type SLASH m-subtype *(SEMI m-parameter)
>m-type = discrete-type / composite-type
>discrete-type = "text" / "image" / "audio" / "video"
>/ "application" / extension-token
>composite-type = "message" / "multipart" / extension-token
>
>Record-Route = "Record-Route" HCOLON rec-route *(COMMA rec-route)
>
>Thanks
>Jijo
>
>
>
>On Thu, Aug 18, 2011 at 2:23 AM, Bucur Marius <bucur_marius_ovidiu(a)yahoo.com> wrote:
>
>Hello Jijo,
>>
>>It seems like the decode_mime_type is a somehow broken. The comma is very well allowed in boundary, as you said. The BNF specified in RFC2046 permits it.
>>But, the decode_mime_type function ignores everything coming after comma. More than that, it notifies the function caller that this content type has multiple mime types.
>>I think the author of the function thought of something like:
>>
>>Content-Type: text/html, image/jpeg // very weird, though
>>
>>This is wrong, hence the comma can be in a parameter (like in your case).
>>I think the best fix, as you said is to remove that check, hence a non-NULL return value doesn't mean anything (that the content type has multiple mime types).
>>Another fix is to write a "good" decode_mime_type, that checks if the comma is inside a parameter. I don't know if effort is worth it.
>>
>>One thing we need to do is to check if there are any functions in Kamailio that call decode_mime_type and also perform this check (ret != end).
>>
>>Cheers,
>>Marius
>>
>>
>>________________________________
>>From: Jijo <realjijo(a)gmail.com>
>>To: sr-users(a)lists.sip-router.org; sr-dev(a)lists.sip-router.org
>>Sent: Wednesday, August 17, 2011 10:54 AM
>>Subject: [SR-Users] decode_mime_type error
>>
>>
>>
>>Hi All,
>>
>>The function parse_content_type_hdr() is failing in decode_mime_type() when Content-Type parameter "boundary" has value comma as below. The error message is "ERROR:parse_content_type_hdr: CONTENT_TYPE hdr contains "
>> "more then one mime type :-(!
>>
>>Content Type Header is as below, It works fine if the boundary value is without comma.
>>
>>Content-Type: multipart/mixed;boundary=",AW"
>>
>>The parse_content_type_hdr() is failing in the following code,
>>
>> ret = decode_mime_type(msg->content_type->body.s, end , &mime);
>> if (ret==0)
>> goto error;
>> if (ret!=end) {
>>
>> LOG(L_INFO,"ERROR:parse_content_type_hdr: CONTENT_TYPE hdr contains "
>> "more then one mime type :-(!\n");
>> goto error ;
>> }
>>
>>I thought of fixing this issue by commenting the code for condition ret !=end. I'm not sure why we we need that check, as mime variable has the information to process the content.
>>
>>Please let me know if you see any impact.
>>
>>Thanks
>>Jijo
>>
>>
>>
>>
>>
>>_______________________________________________
>>SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>sr-users(a)lists.sip-router.org
>>http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>_______________________________________________
>>SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>sr-users(a)lists.sip-router.org
>>http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>
Hello Everyone,
I saw the simple load balancing of asterisk using x-SER documentation
here "http://www.kamailio.org/dokuwiki/doku.php/asterisk:load-balancing-and-ha".
Are there any up-tp-date not so simple documentation for setting up HA
and LB asterisk instances using x-SER.
Thanks in Advance,
Nick Khamis
Toronto Hydro Telecom
Hi All,
The function parse_content_type_hdr() is failing in decode_mime_type() when
Content-Type parameter "boundary" has value comma as below. The error
message is "ERROR:parse_content_type_hdr: CONTENT_TYPE hdr contains "
"more then one mime type :-(!
Content Type Header is as below, It works fine if the boundary value is
without comma.
Content-Type: multipart/mixed;boundary="*,*AW"
The parse_content_type_hdr() is failing in the following code,
ret = decode_mime_type(msg->content_type->body.s, end , &mime);
if (ret==0)
goto error;
if (ret!=end) {
LOG(L_INFO,"ERROR:parse_content_type_hdr: CONTENT_TYPE hdr contains
"
"more then one mime type :-(!\n");
goto error ;
}
I thought of fixing this issue by commenting the code for condition ret
!=end. I'm not sure why we we need that check, as mime variable has the
information to process the content.
Please let me know if you see any impact.
Thanks
Jijo
Hi Juha
based on my experience with the mtree module:
-mt_match() will match the longest prefix in the tree, in your case 00358
-mt_ignore_duplicates makes sense when loading the data in the DB to the
memory. There could be duplicate entries in the db and with that directive
you tell kamailio how to handle that situation
-I don't know about mt_tree_type...(never needed to test it)
Hope it helps
Regards
Javi
> ------------------------------
>
> Message: 2
> Date: Fri, 12 Aug 2011 10:10:29 +0300
> From: Juha Heinanen <jh(a)tutpro.com>
> Subject: [SR-Users] mtree question
> To: sr-users(a)lists.sip-router.org
> Message-ID: <20036.53733.20652.518606(a)sip.test.fi>
> Content-Type: text/plain; charset=us-ascii
>
> after reading mtree readme, it is not clear to me if mt_match() matches
> to longest or any matching prefix in the three. for example, if i have
> tree with prefixes 00 and 00358 and string to be matched is
> 0035892345670, will mt_match() set pv to value associated with 00 or
> 00358? also, if mt_ignore_duplicates is set, will 00358 be considered
> as duplicate of 00 or just prefixes that are exactly same. finally,
> what are possible mt_tree_type values and what types they stand for?
>
> -- juha
>
>
>
> ------------------------------
>
> _______________________________________________
>