<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!<br><br>Thanks Bodgan! <br><br>I have added following to sip header which add source IP in sip packet before sending to asterisk.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; append_hf("X-customer-ip: $si\r\n");<br>Sip trace got following packet which add X-customer-ip: x.x.x.x to sip header but I am wondering how to told/setup asterisk to read source IP from additional sip header instead of network level. Also I have another switch named Voipswitch on which I would not be able to customize any thing to honor incoming sip header for source ip validation so solution should work for all GW/Server other then asterisk only.<br><br>U 2009/12/12 18:58:32.829652 y.y.y.y:5060 -&gt; z.z.z.z:5060<br>INVITE sip:123456789@y.y.y.y SIP/2.0.<br>Record-Route:
 &lt;sip:y.y.y.y;lr;ftag=a16f2b41;did=882.11d0f5f&gt;.<br>To: &lt;sip:123456789@y.y.y.y&gt;.<br>From: hello&lt;sip:hello@y.y.y.y&gt;;tag=a16f2b41.<br>Via: SIP/2.0/UDP y.y.y.y;branch=z9hG4bKfb2e.a79595a4.0.<br>Via: SIP/2.0/UDP x.x.x.x:7266;received=x.x.x.x;branch=z9hG4bK-d87543-197592634-1--d87543-;rport=7266.<br>Call-ID: 9867b13bdc3a4f30.<br>CSeq: 1 INVITE.<br>Contact: &lt;sip:hello@x.x.x.x:7266&gt;.<br>Max-Forwards: 69.<br>Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO.<br>Content-Type: application/sdp.<br>User-Agent: eyeBeam release 3007n stamp 17816.<br>Content-Length: 237.<br><span style="font-weight: bold;">X-customer-ip: x.x.x.x.</span><br style="font-weight: bold;"><br>Please suggest solution with sample configs.<br><br>Thanks<br>Regards<br>Muhammad Zulqarnain<br><br><br></div><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;">&gt;Hi Muhammad,<br>&gt;<br>&gt;What you can do (and I
 know for sure it works with
Asterisk), is to configure opensips (LB) to add the real src IP (IP of
the client) &gt;into a SIP header (in the request) and send it to Asterisk
- asterisk will do IP based auth but will take IP from that header
(custom &gt;name) instead of taking it from network level.<br><br>&gt;Regards,<br>&gt;Bogdan<br><br>Muhammad Zulqarnain wrote:<br>&gt; Hello!<br>&gt; <br>&gt;
This is Zulqarnain and my first post to this mailing list. I just start
using OpenSIP and trying to get myself familiar with OpenSIP and it's
config files, method etc.<br>&gt; <br>&gt; Well, I am trying to achieve following:<br>&gt; Client IP: x.x.x.x<br>&gt; OpenSIP: y.y.y.y<br>&gt; Asterisk: z.z.z.z<br>&gt; <br>&gt; 1) Client -&gt; OpenSIP (Load_balancer) -&gt; Asterisk1, Asterisk2....<br>&gt;&nbsp;
&nbsp; a) If Client Request is Register -&gt; Relay to Asterisk (It is
working fine as peer is defined with user/passwd auth, host=dynamic)<br>&gt;&nbsp;
&nbsp; b) If Client Request is INVITE -&gt; Relay to Asterisk (Asterisk
Reject as peer is defined as IP Auth, type=peer, host=x.x.x.x)<br>&gt; <br>&gt;
"b" scenario failed as Asterisk read OpenSIP IP y.y.y.y and reject the
call as Asterisk is expecting Source IP x.x.x.x instead of y.y.y.y<br>&gt; <br>&gt; I tried following to fix but no success:<br>&gt; <br>&gt;
1) 302 Redirect for GW Clients, who can only authenticate by IP and
don't support registration with user/passwd. But my DID Provider don't
support 302 redirect although i have tested with Eyebeam Client in peer
to peer mode and it works. But as it didn't work with my provider so I
tried another way:<br>&gt; <br>&gt; 2) uac_replace_from &amp;
uac_replace_to function of uac.so module, I tried to replace from/to
field with client IP but still Invite is from OpenSIP IP y.y.y.y and
again Asterisk/Voipswitch (another switch) reject call.<br>&gt; <br>&gt;
If required I can post my config file as well here or pastebin for your
expert reviews. I would like to know if it is possible to achive above
scenario with OpenSIP, if Yes then how, any example would appreciated.<br>&gt; <br>&gt;
Another small problem is that while setting up 302 redirect I wanted to
pass $du value to rewritehost("") as $du have the address return by
load_balancer of destination IP and rewritehost() only accept string.
Looking for suggestion on this as well.<br>&gt; <br>&gt; Hopefully to receive positive reply by community.<br>&gt; <br>&gt; Thanks<br>&gt; Regards,<br>&gt; Muhammad Zulqarnain<br>&gt; MSN: <a ymailto="mailto:zulqarnain@globalitvision.com" href="mailto:zulqarnain@globalitvision.com">zulqarnain@globalitvision.com</a><br>&gt; <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;&nbsp;  <br><br><br>-- Bogdan-Andrei Iancu<br>www.voice-system.ro<br></div>
<!-- cg7.c2.mail.re1.yahoo.com compressed/chunked Thu Dec 10 19:01:57 PST 2009 -->
</div><br>

      </body></html>