<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:times new roman,new york,times,serif;font-size:12pt"><div>Hello <span>Brett Nemeroff!<br><br>Thanks for your valuable suggestion and for security measure to avoid spoofing by bad customers, I will try it.<br><br>Thanks<br>Regards,<br>Zulqarnain<br><br><br><br><br></span>&gt;Honestly, this is outside of the scope of this mailing list. but this<br>&gt;may get you on track.<br><br>&gt;First you'll need an asterisk context in the [general] section of your sip.conf:<br>&gt;[general]<br>&gt;context=defalut<br><br>&gt;then in extensions.conf you'll need to use the SIP_HEADER function, to<br>&gt;check for the header and do your magic based on the result. For your<br>&gt;reference, here's the doc for the SIP_HEADER function<br><br>&gt;[Syntax]<br>&gt;SIP_HEADER(&lt;name&gt;[,&lt;number&gt;])<br><br>&gt;[Synopsis]<br>&gt;Gets the specified SIP
 header<br><br>&gt;[Description]<br>&gt;Since there are several headers (such as Via) which can occur multiple<br>&gt;times, SIP_HEADER takes an optional second argument to specify which header with<br>&gt;that name to retrieve. Headers start at offset 1.<br>======%&lt;===========<br><br><br>&gt;Lastly, if you are going to add a header with opensips to include<br>&gt;something that is an authoritative reference to the customer, then you<br>&gt;MUST first remove the header from the incoming message or your<br>&gt;customer could spoof it. Let me give you an example, I'm a "bad<br>&gt;customer" and I see you are on the mailing list and are using<br>&gt;X-source-ip: header to authenticate calls. So before I send you calls,<br>&gt;I'll stick in a:<br>&gt;X-source-ip: 192.168.1.1<br><br>&gt;to mess you up. If you don't first remove the header, both headers (I<br>&gt;think?) will likely reach the asterisk and heaven only knows which one<br>&gt;asterisk will
 use. :)<br><br>&gt;Of course, alternatively, you can just do this IN opensips. I do this,<br>&gt;works great. And as a big plus, It doesn't use asterisk or funky<br>&gt;headers. :)<br>&gt;-Brett<br><br><br><br>On Sat, Dec 12, 2009 at 1:31 PM, Muhammad Zulqarnain<br>&lt;<a ymailto="mailto:mzulqarnain2002@yahoo.com" href="mailto:mzulqarnain2002@yahoo.com">mzulqarnain2002@yahoo.com</a>&gt; wrote:<br>&gt; Hello!<br>&gt;<br>&gt; Thanks Bodgan!<br>&gt;<br>&gt; I have added following to sip header which add source IP in sip packet<br>&gt; before sending to asterisk.<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; append_hf("X-customer-ip: $si\r\n");<br>&gt; Sip trace got following packet which add X-customer-ip: x.x.x.x to sip<br>&gt; header but I am wondering how to told/setup asterisk to read source IP from<br>&gt; additional sip header instead of network level. Also I have another switch<br>&gt; named Voipswitch on which I would not be able to customize
 any thing to<br>&gt; honor incoming sip header for source ip validation so solution should work<br>&gt; for all GW/Server other then asterisk only.<br>&gt;<br>&gt; U 2009/12/12 18:58:32.829652 y.y.y.y:5060 -&gt; z.z.z.z:5060<br>&gt; INVITE sip:<a ymailto="mailto:123456789@y.y.y.y" href="mailto:123456789@y.y.y.y">123456789@y.y.y.y</a> SIP/2.0.<br>&gt; Record-Route: &lt;sip:y.y.y.y;lr;ftag=a16f2b41;did=882.11d0f5f&gt;.<br>&gt; To: &lt;sip:<a ymailto="mailto:123456789@y.y.y.y" href="mailto:123456789@y.y.y.y">123456789@y.y.y.y</a>&gt;.<br>&gt; From: hello&lt;sip:<a ymailto="mailto:hello@y.y.y.y" href="mailto:hello@y.y.y.y">hello@y.y.y.y</a>&gt;;tag=a16f2b41.<br>&gt; Via: SIP/2.0/UDP y.y.y.y;branch=z9hG4bKfb2e.a79595a4.0.<br>&gt; Via: SIP/2.0/UDP<br>&gt; x.x.x.x:7266;received=x.x.x.x;branch=z9hG4bK-d87543-197592634-1--d87543-;rport=7266.<br>&gt; Call-ID: 9867b13bdc3a4f30.<br>&gt; CSeq: 1 INVITE.<br>&gt; Contact: &lt;sip:<a ymailto="mailto:hello@x.x.x.x"
 href="mailto:hello@x.x.x.x">hello@x.x.x.x</a>:7266&gt;.<br>&gt; Max-Forwards: 69.<br>&gt; Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE,<br>&gt; INFO.<br>&gt; Content-Type: application/sdp.<br>&gt; User-Agent: eyeBeam release 3007n stamp 17816.<br>&gt; Content-Length: 237.<br>&gt; X-customer-ip: x.x.x.x.<br>&gt;<br>&gt; Please suggest solution with sample configs.<br>&gt;<br>&gt; Thanks<br>&gt; Regards<br>&gt; Muhammad Zulqarnain<br>&gt;<br>&gt;<br>&gt;&gt;Hi Muhammad,<br>&gt;&gt;<br>&gt;&gt;What you can do (and I know for sure it works with Asterisk), is to<br>&gt;&gt; configure opensips (LB) to add the real src IP (IP of the client) &gt;into a<br>&gt;&gt; SIP header (in the request) and send it to Asterisk - asterisk will do IP<br>&gt;&gt; based auth but will take IP from that header (custom &gt;name) instead of<br>&gt;&gt; taking it from network level.<br>&gt;<br>&gt;&gt;Regards,<br>&gt;&gt;Bogdan<br>&gt;<br>&gt;
 Muhammad Zulqarnain wrote:<br>&gt;&gt; Hello!<br>&gt;&gt;<br>&gt;&gt; This is Zulqarnain and my first post to this mailing list. I just start<br>&gt;&gt; using OpenSIP and trying to get myself familiar with OpenSIP and it's config<br>&gt;&gt; files, method etc.<br>&gt;&gt;<br>&gt;&gt; Well, I am trying to achieve following:<br>&gt;&gt; Client IP: x.x.x.x<br>&gt;&gt; OpenSIP: y.y.y.y<br>&gt;&gt; Asterisk: z.z.z.z<br>&gt;&gt;<br>&gt;&gt; 1) Client -&gt; OpenSIP (Load_balancer) -&gt; Asterisk1, Asterisk2....<br>&gt;&gt;&nbsp; &nbsp; a) If Client Request is Register -&gt; Relay to Asterisk (It is working<br>&gt;&gt; fine as peer is defined with user/passwd auth, host=dynamic)<br>&gt;&gt;&nbsp; &nbsp; b) If Client Request is INVITE -&gt; Relay to Asterisk (Asterisk Reject as<br>&gt;&gt; peer is defined as IP Auth, type=peer, host=x.x.x.x)<br>&gt;&gt;<br>&gt;&gt; "b" scenario failed as Asterisk read OpenSIP IP y.y.y.y and reject the<br>&gt;&gt; call as
 Asterisk is expecting Source IP x.x.x.x instead of y.y.y.y<br>&gt;&gt;<br>&gt;&gt; I tried following to fix but no success:<br>&gt;&gt;<br>&gt;&gt; 1) 302 Redirect for GW Clients, who can only authenticate by IP and don't<br>&gt;&gt; support registration with user/passwd. But my DID Provider don't support 302<br>&gt;&gt; redirect although i have tested with Eyebeam Client in peer to peer mode and<br>&gt;&gt; it works. But as it didn't work with my provider so I tried another way:<br>&gt;&gt;<br>&gt;&gt; 2) uac_replace_from &amp; uac_replace_to function of uac.so module, I tried to<br>&gt;&gt; replace from/to field with client IP but still Invite is from OpenSIP IP<br>&gt;&gt; y.y.y.y and again Asterisk/Voipswitch (another switch) reject call.<br>&gt;&gt;<br>&gt;&gt; If required I can post my config file as well here or pastebin for your<br>&gt;&gt; expert reviews. I would like to know if it is possible to achive above<br>&gt;&gt; scenario with OpenSIP,
 if Yes then how, any example would appreciated.<br>&gt;&gt;<br>&gt;&gt; Another small problem is that while setting up 302 redirect I wanted to<br>&gt;&gt; pass $du value to rewritehost("") as $du have the address return by<br>&gt;&gt; load_balancer of destination IP and rewritehost() only accept string.<br>&gt;&gt; Looking for suggestion on this as well.<br>&gt;&gt;<br>&gt;&gt; Hopefully to receive positive reply by community.<br>&gt;&gt;<br>&gt;&gt; Thanks<br>&gt;&gt; Regards,<br>&gt;&gt; Muhammad Zulqarnain<br>&gt;&gt; MSN: <a ymailto="mailto:zulqarnain@globalitvision.com" href="mailto:zulqarnain@globalitvision.com">zulqarnain@globalitvision.com</a><br>&gt;&gt;<br>&gt;&gt; ------------------------------------------------------------------------<br>&gt;&gt;<br>&gt;&gt; _______________________________________________<br>&gt;&gt; Users mailing list<br>&gt;&gt; <a ymailto="mailto:Users@lists.opensips.org"
 href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>&gt;&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>&gt;&gt;<br>&gt;<br>&gt;<br>&gt; -- Bogdan-Andrei Iancu<br>&gt; www.voice-system.ro<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; Users mailing list<br>&gt; <a ymailto="mailto:Users@lists.opensips.org" href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>&gt; <a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>&gt;<br>&gt;<br></div>
<!-- cg7.c2.mail.re1.yahoo.com compressed/chunked Thu Dec 10 19:01:57 PST 2009 -->
</div><br>

      </body></html>