what is the difference between SIP proxy and outbound proxy - sip

What is the difference between SIP Proxy server and Outbound proxy server.
I am using asterisk and I see two fields - proxy address and outbound proxy address.

Outbound proxy server is the server your sip request will be sent to; its similar to default gateway we set in IP configuration.

With respect to SIP
Proxy Server - Any server that proxies your request i.e. an entity between UAC and UAS, that forwards the request to UAS on your behalf.
Outbound Server - As earlier said by parag, its like default gateway. Any SIP request from you SIP client will go to this server. This is configured in your client. It can be used for policy enforcement.

Related

Why do we need the HTTP CONNECT Tunnel in Fiddler?

I saw many Tunnel to host:443 in Fiddler traffic interception, when I click it I saw below info:
The selected session is a HTTP CONNECT Tunnel. This tunnel enables a client to send raw traffic (e.g. HTTPS-encrypted streams or WebSocket messages) through a HTTP Proxy Server (like Fiddler).
I also searched this -
Fiddler2: Decrypt HTTPS traffic and Tunnel to host:443
But these didn't answer my question, why do we need the HTTP CONNECT Tunnel? Why does a client need to send raw traffic?
See https://textslashplain.com/2015/11/19/understanding-connect-tunnels/
tl;dr: Browsers need to send CONNECT tunnel requests to proxies in order for the proxy to know to what server the traffic should be sent.
The encryption provided by HTTPS prevents the proxy server from seeing the URLs or HOST headers of the requests, and these are how a proxy normally decides where to send the requests. So, for HTTPS traffic, a different approach is needed-- that approach is that the client tells the proxy: "Hey, give me a tunnel to example.com and let me know when it's ready." The proxy does so and tells the client HTTP/200 Connection established. At that point, the proxy becomes a blind byte-shuffler that takes bytes from the client and sends them to the server and returns the bytes the server replied with back to the client.

Intercept all outgoing connections made by a process to redirect it to a localhost proxy

I am working in an environment where there are multiple services hosted. A service(consider web services) exposes some APIs and also acts as client to call other services too.
Now what I want to achieve is that if Service A (acting as client) wants to talk to Service B(acting as server here) using http , then I want to intercept outgoing HTTP request and redirect it to localhost proxy.
There are multiple services running on a host and a service also talks to multiple other services, so I don't want to change the configuration of every outgoing endpoint configuration to point to proxy.
Sample configurations:
Following are the services endpoint which service A connects while doing some processing like:
a1.example.com:2430
a2.example.com:8280
a3.example.com:4380
a4.example.com:4280
a5.example.com:3158
a6.example.com:8238
I have looked into configuring squid proxy as transparent proxy. But how should I enforce every outgoing connection (with different destination ports ) to redirect to localhost proxy.

Difference between sip proxy and sip outbound proxy

I'm little bit confused about sip proxy and sip outbound proxy? What is the basic difference between sip proxy and sip outbound proxy? Is it mandatory to use sip outbound proxy along with sip proxy? Can anyone point me out from the below image which one is the sip proxy and outbound proxy?
As your attached picture, it should be:
User Agent: Client
SIP outbound proxies: SIP Proxy port 5060 & SIP Proxy port 5070 when they're receiving incoming request from UA
A sip proxy can be understood as an "outbound proxy" or an "inbound proxy".
Details explanation can be describe as below:
"Pretend you are a SIP User Agent, perhaps a very simple UA that
doesn't even do DNS lookups.
A call coming to you is "inbound".
It may hit your home proxy first, and receive treatment such as being
proxied to you based on your registered contact. This is an "inbound
service", and your home proxy is acting as an "inbound proxy".
Now you want to make a call. Since you're making the call, it is going
"out", or can be called "outbound". You send this call to a proxy,
which looks up the request URI in DNS and sends the call on towards
its destination. This proxy is providing the "outbound service" of DNS
resolution, and is acting as an "outbound proxy" for this call.
On any call there may be any number of inbound and outbound proxies
and services. Some proxies may even provide both sorts for a single
call.
Assume the simple network UA1----P1----P2----UA2
UA1 places a call to UA2."
//refer: https://www.ietf.org/mail-archive/web/sip/current/msg06276.html
SIP Proxy
A SIP proxy server receives a SIP request from a user agent or another
proxy and acts on behalf of the user agent in forwarding or responding
to the request.
Sip Outbound Proxy
An outbound Proxy: A proxy that receives requests from a client, even
though it may not be the server resolved by the Request-URI.
Typically, a SIP user agent is manually configured with an outbound proxy, or
can learn about one through auto-configuration protocols.
Basically they are the same, the only difference, is that SIP Proxy treats requests both for UAC (client) and UAS (server), but SIP Outbound Proxy receives requests from UAC.
And, no, it's not mandatory to use SIP Outbound Proxy along with SIP Proxy.
What about scheme from your image, these are not proxy servers, but are registrar servers which are used to register requests of the users and keep the information from these requests.

OpenSIPS and Twilio Elastic Sip Trunking

I'm very very new to the world of VoIP, so please forgive my terminological inaccuracies.
I have just installed ( on to a remote server ) the OpenSIPS software.
I have provisioned a Twilio Elastic SIP Trunk which has it's Origination SIP URI set to the IP address of the OpenSIPS server ( but it prepended with the protocol 'sip:' )
I have two iPhones with some VoIP apps, that allow me to specify Auth Name, Auth Password, Username, Display Name, Domain and SIP Proxy.
In OpenSIPS i have created a domain ( with the IP of my server )
also, i created two users ( on that domain ) and gave them Aliases
of 100 and 101.
The software on the iPhones claims that it has 'registered' with the
OpenSIPS server, so I have to accept that.
I believe that my configuration of the Twilio SIP Trunk is correct, on the
basis that there aren't many settings to set, and they all look correct,
and make some kind of logical sense.
What i cant figure out from here, and not for lack of searching the web,
watching hours of webinars etc, is how do I get OpenSIPS to send outbound
calls through to the Twilio Trunk, and also get the handsets to ring on
incomming calls, and Twilio's SIP Trunk has a Termination SIP URI of xxxxxx.pstn.twilio.com which is ( im guessing ) supposed to be entered somewhere in to OpenSIPS but I cannot see how to configure this.
I'm looking for something that is a guide on how to 'connect' OpenSIPS to the Twilio Elastic Sip Trunking service.
Any help appreciated...
So, I'm guessing you want to set up an OpenSIPS instance which acts both as SIP registrar and basic SBC, by simply forwarding all outgoing traffic to the Twilio SIP trunk.
SIP Registrar
It looks like you've already handled the registrar part of OpenSIPS scripting. You can always generate a basic configuration that handles user registrations with:
make menuconfig
"Generate OpenSIPS script"
"Residential script"
To list the currently registered OpenSIPS users:
opensipsctl ul show
SIP Session Border Controller (basic routing)
- managing outgoing traffic
Here are a few useful scripting mechanisms:
$ru / $rU / $rd variables (management of Entire SIP Request URI / Just username of R-URI / Just domain of R-URI) - do all necessary changes (i.e. force the R-URI to be xxxxxx.pstn.twilio.com...)
$du variable - (management of Outbound Proxy) - this will help us route to the Twilio SIP trunk. Setting a destination URI, then doing t_relay() will simply proxy the current request to the specified destination. For a more advanced routing mechanism (i.e. you need to route to a bunch of trunks), consider using the dispatcher module, which supports using a cached SQL table populated with SIP destinations.
- managing incoming traffic
the registrar module functions should be enough for this (test with lookup() or registered(), then just do t_relay()). They will verify if your iPhones are currently registered on the OpenSIPS server.

What port number does SOAP use?

What is the default port number that the SOAP protocol works on?
There is no such thing as "SOAP protocol". SOAP is an XML schema.
It usually runs over HTTP (port 80), however.
SOAP (Simple Object Access Protocol) is the communication protocol in the web service scenario.
One benefit of SOAP is that it allowas RPC to execute through a firewall. But to pass through a firewall, you will probably want to use 80.
it uses port no.8084
To the firewall, a SOAP conversation on 80 looks like a POST to a web page. However, there are extensions in SOAP which are specifically aimed at the firewall. In the future, it may be that firewalls will be configured to filter SOAP messages. But as of today, most firewalls are SOAP ignorant.
so exclusively open SOAP Port in Firewalls
SOAP (communication protocol) for communication between applications.
Uses HTTP (port 80) or SMTP ( port 25 or 2525 ), for message negotiation and transmission.