Hi there,

I have done a few iterations of the above before, I assume you are just
doing a simple B2BUA-like transaction here?

The main things to do that worked for me were:

Double RR params (with private first then public second - but I set these
in my kemi python file after enabling double rr in the cfg) and a force
send socket of your private address for signalling -
https://www.kamailio.org/docs/modules/devel/modules/rr.html#rr.p.enable_double_rr/
https://www.kamailio.org/wiki/cookbooks/5.0.x/core#force_send_socket

The above makes sure the sending socket is the private and the signalling
gets back to the box.

RTPengine manage flags for SDP - (direction=private direction=public) these
needs to be in your RTPengine config as well the rtpengine_manage() block
in your config - check the flags in rtpengine_offer() -
https://www.kamailio.org/docs/modules/stable/modules/rtpengine.html#rtpengine.f.rtpengine_offer

I use the above when using textops to see if it has a:
"has_body_type(application/sdp)" criteria, then check the source address to
see if it is a private IP and if not it goes pub->pri - then an else
statement to go pri->pub

That should get you there hopefully.

I will try dig out some code if you get stuck though it might take a while
as it was ages ago.

Cheers,

John.

On Thu, 18 Jan 2024 at 22:58, Jere Cassidy via sr-users <
[email protected]> wrote:

>
> Hello!
>
> Thanks in advance for any help you can provide.
>
> I have a simple setup here and am struggling a bit with getting a final
> working solution.
>
>
> This is just a single direction flow from a SIP provider inbound to
> servers running HMPelements with CTI integration (sip endpoint).
> Essentially a different DN / dial number would go to a different backend
> server.  There is no registration involved.
>
> The kamailio server therefore needs to sit between the SIP provider and
> the backend servers, it will be a NAT situation where private RFC1918
> addresses will be used on the backend after the server receives it with
> public IP information.
>
> So that's it.    What is the simplest way to accomplish this?
>
>
> If it would help - here's what ive done so far:
>
> For the Kamailio server, I have an AWS EC2 instance with a public IP
> bound/assigned to the main private IP.  During troubleshooting, I've added
> another private IP to the NIC so that I could throw up another listener.
>  I was thinking I'd need to accept the SIP on the first listener with the
> "advertise" directive.  The second listener would not have an advertise
> directive so perhaps could be used to talk to the backends.
>
> I defined the WITH NAT and rtp proxy settings (pointing to the first
> listener below).  The RTP Proxy daemon also knows about the y.y.y.y public
> address below.
>
> In the kamailio.cfg, I have a listener setup :
>
> listen=udp:172.24.40.28:5060 advertise y.y.y.y:5060
> listen=udp:172.24.40.26:5060
>
> then threw in a route(CMS)  in the request route and created the following
> route block:
>
> route[CMS] {
>         #check URI matches phone xxxxxxxxxx
>         if (uri=~"^sip:\+1xxxxxxxxxx@") {
>                 rewritehostport("10.12.18.193:5060");
>                 forward(uri:host, uri:port);
>                 exit;
>         };
>
> }
>
> I get the SIP delivered to the backend host!  but the INVITE headers are
> stil pointing to public IPs and the SDP info is not adjusted to be a
> private IP as well - as follows:
> z.z.z.z = sip provider ,  y.y.y.y = public ip (aws ec2 ip). xxxxxxxxx =
> calling phone, ######## = called phone (matches routeCMS above)
>
>
> INVITE sip:+1##########@10.12.18.193:5060 SIP/2.0
> Record-Route: <sip:y.y.y.y;lr>
> Via: SIP/2.0/UDP
> y.y.y.y:5060;branch=z9hG4bK28b7.56b42fdeec9f10cd13030b3711b16f4d.0
> Via: SIP/2.0/UDP
> z.z.z.z:11000;received=z.z.z.z;rport=11000;branch=z9hG4bKQ2yQKgv7NtKQF
> Max-Forwards: 48
> From: "" <sip:[email protected];isup-oli=0>;tag=tUF15gaNg6N6j
> To: <sip:+1##########@y.y.y.y>
> Call-ID: 9ee7e073-c7fc-46ac-a839-f3c77eaed903
> CSeq: 78244364 INVITE
> Contact: <sip:[email protected]:11000>
> User-Agent: 2600Hz
> Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REFER,
> NOTIFY
> Supported: path, replaces
> Allow-Events: talk, hold, conference, refer
> Privacy: none
> Content-Type: application/sdp
> Content-Disposition: session
> Content-Length: 278
> X-FS-Core-UUID: 4e0b2928-d913-42c4-9809-f77a36d281be
> X-FS-Support: update_display,send_info
> P-Asserted-Identity: "" <sip:[email protected]>
>
> v=0
> o=FreeSWITCH 1705572686 1705572687 IN IP4 z.z.z.z
>
>
> Thanks much!
>
>
>
>
>
> __________________________________________________________
> Kamailio - Users Mailing List - Non Commercial Discussions
> To unsubscribe send an email to [email protected]
> Important: keep the mailing list in the recipients, do not reply only to
> the sender!
> Edit mailing list options or unsubscribe:
>
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:

Reply via email to