Running Repro on the same machine as a User Agent

From reSIProcate
Jump to navigation Jump to search

If you are running repro on the same machine as a User Agent (ie. SIP Softphone) then you may experience problems if you are using the Record-Routing feature of repro.

Note: This problem has been reolved in SVN version 6839.

Problem[edit]

Repro adds it's own IP, the loopback interface, discovered domain name and any manually configured domain names to a list of domains that it is responsible for. Some UA's will insert their IP address in their contact headers. This address is then used by the far end UA to reach the other UA - ie. for ACK requests. Since repro examines requests to see if the request URI is for it's domain it is reponsible for - it will see these requests as for it's own domain and will try to lookup this URI (containing an IP address) in it registration database (which contains AORs using domain names) and will not be able to locate a routing point, thus the request will fail.

Resolution[edit]

We need to trick Repro, so that it will not try to resolve these requests in the registation database. This can be done by adding a static route. This static route will not alter the request URI in anyway and is only used to cause repro to route these requests without looking up in the Registration database.

Sample static route:

If the IP address of the repro box is: 192.168.1.200
URI = ^sip:(.*)192\.168\.1\.200(.*)
Destination = sip:$1192.168.1.200$2

Note: If any UA's registering with this instance of repro are using an IP address in their AOR's. Then you should also include the listen port of the UA that is on the same machine as repro in the static route.

If the IP address of the repro box is: 192.168.1.200 and the port that UA is lisening on is 5062.
URI = ^sip:(.*)192\.168\.1\.200:5062(.*)
Destination = sip:$1192.168.1.200:5062$2