Problems with MGCP proxy creation
- by Popof
Hi,
I'm trying to bypass my ISP router with my FreeBSD server (I've an optical connection so I've a RJ45 used to connect the box to WAN)
Internet and TV are working fine (Using igmpproxy to forward TV stream) but I've a problem with phone.
ISP's box is connected to the server which gives it a LAN address. The problem is that when the box builds MGCP packets (and especially SDP ones) it uses its LAN address.
So I've think of writing an UDP proxy to handle MGCP and SDP packets in order to replace LAN address with server WAN address and then forward packet to WAN.
Before starting coding I've captured stream packets using my server as a bridge between WAN connection and the ISP's box.
And, in order to see if my solution is viable, I've tried to send those packets to the box using nemesis.
I tried to send a packet (found in capture) containing an endpoint audit:
AUEP 1447 aaln/[email protected] MGCP 1.0
F: A
In the wireshark capture the box replied:
200 1447 OK
A: a:PCMU;PCMA;G726-16;G726-24;G726-32;G726-40;G.723.1-5.3;G.723.1-6.3;G729;TELEPHONE-EVENT, fmtp:"TELEPHONE-EVENT 0-15,144,149,159", p:10-30, b:4-40, e:on, t:00, s:on, v:L;M;G;D, m:sendonly;recvonly;sendrecv;inactive;confrnce;replcate;netwtest;netwloop, dq-gi
But when I use nemesis, I got an ICMP error: Port unreachable (Type 3, Code 3).
To build this packet, WAN source address of the capture is replaced with my server LAN address, using the mgcp-callagent port (2727) and the packet is sent to the LAN address of the box at mgcp-gateway port (2427).
The command I use is nemesis udp -S 192.168.2.1 -D 192.168.2.2 -x 2727 -y 2427 -P packet_to_send.
I also tried an UDP scan to the box on callagent and gateway port:
PORT STATE SERVICE
2727/udp open|filtered unknown
2427/udp closed unknown
I found those results a little bit strange because it should be the 2427 port opened, as it was in capture.
Internet Protocol, Src: <ISP MGCP Server>, Dst: <My WAN Address>
User Datagram Protocol, Src Port: mgcp-callagent (2727), Dst Port: mgcp-gateway (2427)
Does someone has any idea about how having my box responding to my requests ?
Thanks in advance and sorry for my english.