Hi Tyler,

On 02/10/2011 05:33 AM, Tyler Merritt wrote:
All,

A very special issue I'm facing now. I'm using "is_method" from the reply block (starting with a "has_totag" which matches and then goes inside that block to check stuff out).

Here is the code:

xlog ("L_INFO", "Right before the reINVITE check!\n");

I suggest you to print the message buffer here just to be sure. Use xlog("$mb\n");

Regards,

--
Anca Vamanu
OpenSIPS Developer



                        if ( is_method("INVITE") ) {
                                append_hf("GW: REINVITE\r\n");
                                if ( t_check_trans() ) {
                                        t_relay();
                                        exit;
                                }
                        }
xlog ("L_INFO", "Right after the reINVITE check!\n");
                        sl_send_reply("404","Not here");


Here is the packet:


12:18:24.725518 IP 192.168.1.134.5060 > 192.168.0.2.5060: SIP, length: 720
E.....@...v(................INVITE sip:XXXXXXXXXX@DOMAIN SIP/2.0

CSeq: 443638 INVITE


Here is the definition from the documentation:


      |is_method(name)|

Check if the method of the message matches the name. If name is a known method (invite, cancel, ack, bye, options, info, update, register, message, subscribe, notify, refer, prack), the function performs method ID testing (integer comparison) instead of ignore case string comparison.

The 'name' can be a list of methods in the form of 'method1|method2|...'. In this case, the function returns true if the SIP message's method is one from the list. IMPORTANT NOTE: in the list must be only methods defined in OpenSIPS with ID (invite, cancel, ack, bye, options, info, update, register, message, subscribe, notify, refer, prack, publish; for more see:http://www.iana.org/assignments/sip-parameters).

If used for replies, the function tests the value of method field from CSeq header.



If used for replies, the function tests the value of method field from *CSeq header.*

*
*

The CSeq header above sure enough has "INVITE" inside it. And the is_method filed is being used from a reply (it shouldn't really matter though right? It should match regardless).


Please point out what I'm doing wrong - the daemon.log file shows:


Feb 10 12:18:25 sip-proxy1 /usr/sbin/opensips[22658]: DBG:rr:loose_route: There is no Route HF

Feb 10 12:18:25 sip-proxy1 /usr/sbin/opensips[22658]: Right before the reINVITE check!

Feb 10 12:18:25 sip-proxy1 /usr/sbin/opensips[22658]: Right after the reINVITE check!


It *should* pass loose_route as it does, and then between the two log messages stuff should happen - in this case, a match of the INVITE header.


I don't see what I'm doing wrong.



_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to