[sr-dev] How to get source and destination ip and port details in corex module
Niraj
niraj.r at sabsebolo.com
Fri Jun 24 12:03:57 CEST 2016
Also one more observation, we can set $avp(somevariable) in some route
segment but it mislead corex module while dealing with auto-responded
message like 100 Trying, ACK etc..
E.g.
SIP Client kamailio Media Gateway
| | |
| | |
| | |
|INVITE (Compressed) |
|------------->| |
| | |
| | |
| |Uncompress and send this request to gateway
| | |
| | |
| | |
| |in uncompressed way. set $si and $sp in some
| | |
| | |
| | |
| |$avp(variable)|
| | |
| | |
| | |
|100 Trying (uncompressed) |
|<-------------| |
| | |
| | |
|not recognized reason ?? |
| | |
| | |
| | |
| |network:msg[] corex module hits before and
| | |
| | |
| | |
| |since $avp(variable) is set
| | |
| | |
| | |
| |whose details are not matching with
| | |
| | |
| | |
| |mediagateway so sending message in
| | |
| | |
| | |
| |uncompressed. |
| | |
| | |
| | |
| |INVITE (uncompressed)
| |------------->|
| | |
| | |
| | |
| | |
This is partial flow just to indicate I have been struggling of.
Thanks,
Niraj
On Friday 24 June 2016 12:08 PM, Niraj wrote:
> Hi Eduardo Lejarreta,
> Thank you for your detailed reply.
> What you are suggesting holds good for all those messages hits any
> of the route segment in the script. But my struggle starts while
> dealing with auto-responded messages like 100 Trying, ACK and 200 OK
> against the CANCEL message etc.
> That's why I was thinking of implementing another pseudo variable
> capturing necessary details and still available at [network:msg] event
> route though it is meant to have only raw packets.
> Also I can see corex module works in binary mode only, either to
> compress/encrypt or decompress/decrypt. But Kamailio being a proxy
> need to deal with gateways at one end and end user client at other (In
> very general usage terms. though many more possibilities are there)
> and the primary purpose for which it was written was to deal all these
> custom manipulations between the end user client and kamailio but it
> forces kamailio to treat the gateways in the same manner which I think
> defeats in someway what kamailio has been doing so far. E.g.
> client<----TLS---->Kamailio<---UDP/TCP----->External Gateways.
> Olle,
> Hope you can understand where I am heading towards.
>
> Thanks & Regards,
> Niraj
>
> On Wednesday 22 June 2016 06:06 PM, Eduardo Lejarreta wrote:
>> Hi Niraj.
>>
>> Read module help:
>>
>> "
>> Please note this event route is meant to prepare the message for
>> on-wire communication, e.g. to do custom encryption or decryption,
>> compression/decompression etc. of the message sent to or received
>> from remote host. Therefore, except text operations, no module
>> fucntions or pseudo variables are available in this event route.
>> "
>>
>> Forget to access or change someother than $avp(msg) like $si or $sp.
>> But think $avp(something) is still available.
>>
>> On that route you can do something like these examples:
>>
>> 1.- You can acceso $si and $sp if you previously have assinegd them
>> to an $avp(var):
>>
>> (with $avp(source_ip) previously assigned on any other route)
>>
>> event_route[network:msg] {
>> xlog("L_INFO","ONREPLY: NETWORK_MSG $avp(source_ip)\n");
>> }
>>
>> 2.- You can also try to search on headers and do something like this
>>
>> event_route[network:msg] {
>> if ( !is_incoming() ) {
>> if ( $mb =~ ".*application/sdp.*" ){
>> if ( $mb =~ ".*c=IN IP4 194\.30\.0\.82.*" ) {
>> xlog("L_DEBUG","EVENT_ROUTE: NETWORK_MSG '$mb'\n");
>> }else{
>> $avp(msg) = $mb;
>> $avp(msg) = "";
>> xlog("L_INFO","EVENT_ROUTE: NETWORK_MSG: DROP de
>> MENSAJE: '$mb' \n");
>> }
>> }
>> }
>> }
>>
>> Hope this helps you.
>>
>> Regards.
>>
>> Eduardo Lejarreta.
>>
>> El 22.06.2016 12:19, Olle E. Johansson escribió:
>>>> On 21 Jun 2016, at 13:03, Niraj <niraj.r at sabsebolo.com> wrote:
>>>>
>>>> Hi Olle,
>>>> Thanks for your reply. But I beg to differ that any other pseudo
>>>> variable available in this module apart from $mb and msg_avp. I
>>>> have already tried to use those variables but they all give <null>
>>>> value.
>>> I think we must be talking about two different things. I talk about
>>> the script language - are you talking about
>>> C source code development?
>>>
>>> /O
>>>>
>>>> Thanks,
>>>> Niraj
>>>> On Tuesday 21 June 2016 04:23 PM, Olle E. Johansson wrote:
>>>>>> On 21 Jun 2016, at 12:19, Niraj <niraj.r at sabsebolo.com> wrote:
>>>>>>
>>>>>> Hi,
>>>>>> Corex module has only raw SIP message and no other pseudo
>>>>>> variables available. Can anybody shade some light on how to get
>>>>>> source and destination IP and port details for that particular
>>>>>> SIP message?
>>>>> I think you need to read through the pseudovariable cookbook
>>>>> http://www.kamailio.org/wiki/cookbooks/4.4.x/pseudovariables
>>>>>
>>>>> You will find all you ask for and much more in that document!
>>>>>
>>>>> /O
>>>>> _______________________________________________
>>>>> sr-dev mailing list
>>>>> sr-dev at lists.sip-router.org
>>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>>
>>>> --
>>>> Thanks & Regards,
>>>> Niraj Roy
>>>> Mob: +91 9426554400
>>>>
>>>
>>>
>>> _______________________________________________
>>> sr-dev mailing list
>>> sr-dev at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
--
Thanks & Regards,
Niraj Roy
Mob: +91 9426554400
More information about the sr-dev
mailing list