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@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@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@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
sr-dev mailing list sr-dev@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev