@ -8,14 +8,10 @@ use Socket6;
my % cmds = ( noop = > 1 , add = > 2 , delete = > 3 , update = > 4 , add_call = > 5 , del_call = > 6 , add_stream = > 7 , del_stream = > 8 , packet = > 9 ) ;
my % cmds = ( noop = > 1 , add = > 2 , delete = > 3 , update = > 4 , add_call = > 5 , del_call = > 6 , add_stream = > 7 , del_stream = > 8 , packet = > 9 ) ;
my % ciphers = ( 'null' = > 1 , 'aes-cm' = > 2 , 'aes-f8' = > 3 ) ;
my % ciphers = ( 'null' = > 1 , 'aes-cm' = > 2 , 'aes-f8' = > 3 ) ;
my % hmacs = ( 'null' = > 1 , 'hmac-sha1' = > 2 ) ;
my % hmacs = ( 'null' = > 1 , 'hmac-sha1' = > 2 ) ;
$| = 1 ;
STDOUT - > autoflush ( 1 ) ;
open ( F , "+> /proc/rtpengine/0/control" ) or die ;
open ( my $ fh , '+>' , '/proc/rtpengine/0/control' ) or die ;
{
$ fh - > autoflush ( 1 ) ;
my $ x = select ( F ) ;
$| = 1 ;
select ( $ x ) ;
}
sub re_address {
sub re_address {
my ( $ fam , $ addr , $ port ) = @ _ ;
my ( $ fam , $ addr , $ port ) = @ _ ;
@ -140,47 +136,47 @@ my $ret;
my $ msg ;
my $ msg ;
# print("add 9876 -> 1234/6543\n");
# print("add 9876 -> 1234/6543\n");
# $ret = syswrite( F , rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
# print("add fail\n");
# print("add fail\n");
# $ret = syswrite( F , rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
# print("update 9876 -> 1234/6543 & 6789\n");
# print("update 9876 -> 1234/6543 & 6789\n");
# $ret = syswrite( F , rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
# print("update 9876 -> 2345/7890 & 4321\n");
# print("update 9876 -> 2345/7890 & 4321\n");
# $ret = syswrite( F , rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 2345, dst_addr => \@dst, dst_port => 7890, mirror_addr => \@dst, mirror_port => 4321, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 2345, dst_addr => \@dst, dst_port => 7890, mirror_addr => \@dst, mirror_port => 4321, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
# print("add fail\n");
# print("add fail\n");
# $ret = syswrite( F , rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, mirror_addr => \@dst, mirror_port => 6789, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
# print("update 9876 -> 1234/6543\n");
# print("update 9876 -> 1234/6543\n");
# $ret = syswrite( F , rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
# print("delete\n");
# print("delete\n");
# $ret = syswrite( F , rtpengine_message('delete', local_addr => \@local, local_port => 9876, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('delete', local_addr => \@local, local_port => 9876, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
# print("delete fail\n");
# print("delete fail\n");
# $ret = syswrite( F , rtpengine_message('delete', local_addr => \@local, local_port => 9876, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('delete', local_addr => \@local, local_port => 9876, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
# print("update fail\n");
# print("update fail\n");
# $ret = syswrite( F , rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# $ret = syswrite( $fh , rtpengine_message('update', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
@ -215,7 +211,7 @@ if (0) {
print ( "creating call $name\n" ) ;
print ( "creating call $name\n" ) ;
$ msg = rtpengine_message_call ( 'add_call' , 0 , $ name ) ;
$ msg = rtpengine_message_call ( 'add_call' , 0 , $ name ) ;
$ ret = sysread ( F , $ msg , length ( $ msg ) ) // '-' ;
$ ret = sysread ( $ fh , $ msg , length ( $ msg ) ) // '-' ;
#print("reply: " . unpack("H*", $msg) . "\n");
#print("reply: " . unpack("H*", $msg) . "\n");
print ( "ret = $ret, code = $!\n" ) ;
print ( "ret = $ret, code = $!\n" ) ;
@ -232,7 +228,7 @@ if (0) {
print ( "creating stream $name under call idx $call\n" ) ;
print ( "creating stream $name under call idx $call\n" ) ;
$ msg = rtpengine_message_stream ( 'add_stream' , $ call , 0 , $ name ) ;
$ msg = rtpengine_message_stream ( 'add_stream' , $ call , 0 , $ name ) ;
$ ret = sysread ( F , $ msg , length ( $ msg ) ) // '-' ;
$ ret = sysread ( $ fh , $ msg , length ( $ msg ) ) // '-' ;
#print("reply: " . unpack("H*", $msg) . "\n");
#print("reply: " . unpack("H*", $msg) . "\n");
print ( "ret = $ret, code = $!\n" ) ;
print ( "ret = $ret, code = $!\n" ) ;
@ -249,7 +245,7 @@ if (0) {
print ( "deleting call idx $call\n" ) ;
print ( "deleting call idx $call\n" ) ;
$ msg = rtpengine_message_call ( 'del_call' , $ call ) ;
$ msg = rtpengine_message_call ( 'del_call' , $ call ) ;
$ ret = syswrite ( F , $ msg ) // '-' ;
$ ret = syswrite ( $ fh , $ msg ) // '-' ;
#print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
#print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
print ( "ret = $ret, code = $!\n" ) ;
print ( "ret = $ret, code = $!\n" ) ;
@ -278,7 +274,7 @@ if (0) {
print ( "deleting stream idx $stream->[1] (call $stream->[0])\n" ) ;
print ( "deleting stream idx $stream->[1] (call $stream->[0])\n" ) ;
$ msg = rtpengine_message_stream ( 'del_stream' , $ stream - > [ 0 ] , $ stream - > [ 1 ] ) ;
$ msg = rtpengine_message_stream ( 'del_stream' , $ stream - > [ 0 ] , $ stream - > [ 1 ] ) ;
$ ret = syswrite ( F , $ msg ) // '-' ;
$ ret = syswrite ( $ fh , $ msg ) // '-' ;
#print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
#print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
print ( "ret = $ret, code = $!\n" ) ;
print ( "ret = $ret, code = $!\n" ) ;
@ -295,7 +291,7 @@ if (0) {
print ( "delivering a packet to $idx\n" ) ;
print ( "delivering a packet to $idx\n" ) ;
$ msg = rtpengine_message_packet ( 'packet' , 0 , $ idx , 'packet data bla bla ' . rand ( ) . "\n" ) ;
$ msg = rtpengine_message_packet ( 'packet' , 0 , $ idx , 'packet data bla bla ' . rand ( ) . "\n" ) ;
$ ret = syswrite ( F , $ msg ) // '-' ;
$ ret = syswrite ( $ fh , $ msg ) // '-' ;
print ( "ret = $ret, code = $!\n" ) ;
print ( "ret = $ret, code = $!\n" ) ;
sleep ( $ sleep ) ;
sleep ( $ sleep ) ;
@ -316,7 +312,7 @@ if (0) {
print ( "creating call\n" ) ;
print ( "creating call\n" ) ;
$ msg = rtpengine_message_call ( 'add_call' , 0 , 'test call' ) ;
$ msg = rtpengine_message_call ( 'add_call' , 0 , 'test call' ) ;
$ ret = sysread ( F , $ msg , length ( $ msg ) ) // '-' ;
$ ret = sysread ( $ fh , $ msg , length ( $ msg ) ) // '-' ;
#print("reply: " . unpack("H*", $msg) . "\n");
#print("reply: " . unpack("H*", $msg) . "\n");
print ( "ret = $ret, code = $!\n" ) ;
print ( "ret = $ret, code = $!\n" ) ;
@ -330,7 +326,7 @@ sleep($sleep);
# print("creating identical call\n");
# print("creating identical call\n");
#
#
# $msg = rtpengine_message_call('add_call', 0, 'test call');
# $msg = rtpengine_message_call('add_call', 0, 'test call');
# $ret = sysread( F , $msg, length($msg)) // '-';
# $ret = sysread( $fh , $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
#
#
@ -344,7 +340,7 @@ sleep($sleep);
# print("creating other call\n");
# print("creating other call\n");
#
#
# $msg = rtpengine_message_call('add_call', 0, 'another test call');
# $msg = rtpengine_message_call('add_call', 0, 'another test call');
# $ret = sysread( F , $msg, length($msg)) // '-';
# $ret = sysread( $fh , $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
#
#
@ -359,7 +355,7 @@ for my $exp (0 .. 1000) {
print ( "creating a stream\n" ) ;
print ( "creating a stream\n" ) ;
$ msg = rtpengine_message_stream ( 'add_stream' , $ idx1 , 0 , 'test stream ' . rand ( ) ) ;
$ msg = rtpengine_message_stream ( 'add_stream' , $ idx1 , 0 , 'test stream ' . rand ( ) ) ;
$ ret = sysread ( F , $ msg , length ( $ msg ) ) // '-' ;
$ ret = sysread ( $ fh , $ msg , length ( $ msg ) ) // '-' ;
#print("reply: " . unpack("H*", $msg) . "\n");
#print("reply: " . unpack("H*", $msg) . "\n");
print ( "ret = $ret, code = $!\n" ) ;
print ( "ret = $ret, code = $!\n" ) ;
@ -373,7 +369,7 @@ for my $exp (0 .. 1000) {
# print("creating a stream\n");
# print("creating a stream\n");
#
#
# $msg = rtpengine_message_stream('add_stream', $idx1, 0, 'test stream');
# $msg = rtpengine_message_stream('add_stream', $idx1, 0, 'test stream');
# $ret = sysread( F , $msg, length($msg)) // '-';
# $ret = sysread( $fh , $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
#
#
@ -387,7 +383,7 @@ for my $exp (0 .. 1000) {
# print("creating identical stream\n");
# print("creating identical stream\n");
#
#
# $msg = rtpengine_message_stream('add_stream', $idx1, 0, 'test stream');
# $msg = rtpengine_message_stream('add_stream', $idx1, 0, 'test stream');
# $ret = sysread( F , $msg, length($msg)) // '-';
# $ret = sysread( $fh , $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
#
#
@ -401,7 +397,7 @@ for my $exp (0 .. 1000) {
# print("creating different stream\n");
# print("creating different stream\n");
#
#
# $msg = rtpengine_message_stream('add_stream', $idx3, 0, 'test stream');
# $msg = rtpengine_message_stream('add_stream', $idx3, 0, 'test stream');
# $ret = sysread( F , $msg, length($msg)) // '-';
# $ret = sysread( $fh , $msg, length($msg)) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
#
#
@ -413,7 +409,7 @@ for my $exp (0 .. 1000) {
# print("add 9876 -> 1234/6543\n");
# print("add 9876 -> 1234/6543\n");
# $ret = syswrite( F , rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc, stream_idx => $sidx1, flags => 0x20)) // '-';
# $ret = syswrite( $fh , rtpengine_message('add', local_addr => \@local, local_port => 9876, src_addr => \@src, src_port => 1234, dst_addr => \@dst, dst_port => 6543, tos => 184, decrypt => $dec, encrypt => $enc, stream_idx => $sidx1, flags => 0x20)) // '-';
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
# sleep($sleep);
# sleep($sleep);
@ -423,7 +419,7 @@ for my $exp (0 .. 1000) {
# print("delivering a packet\n");
# print("delivering a packet\n");
#
#
# $msg = rtpengine_message_packet('packet', $idx1, $sidx1, 'packet data bla bla ' . rand() . "\n");
# $msg = rtpengine_message_packet('packet', $idx1, $sidx1, 'packet data bla bla ' . rand() . "\n");
# $ret = syswrite( F , $msg) // '-';
# $ret = syswrite( $fh , $msg) // '-';
# #print("reply: " . unpack("H*", $msg) . "\n");
# #print("reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
#
#
@ -436,7 +432,7 @@ for my $exp (0 .. 1000) {
# print("deleting stream\n");
# print("deleting stream\n");
#
#
# $msg = rtpengine_message_stream('del_stream', $idx1, $sidx1, '');
# $msg = rtpengine_message_stream('del_stream', $idx1, $sidx1, '');
# $ret = syswrite( F , $msg) // '-';
# $ret = syswrite( $fh , $msg) // '-';
# #print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
# #print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
#
#
@ -447,7 +443,7 @@ for my $exp (0 .. 1000) {
# print("deleting call\n");
# print("deleting call\n");
#
#
# $msg = rtpengine_message_call('del_call', $idx1, '');
# $msg = rtpengine_message_call('del_call', $idx1, '');
# $ret = syswrite( F , $msg) // '-';
# $ret = syswrite( $fh , $msg) // '-';
# #print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
# #print("ret = $ret, code = $!, reply: " . unpack("H*", $msg) . "\n");
# print("ret = $ret, code = $!\n");
# print("ret = $ret, code = $!\n");
#
#
@ -456,4 +452,4 @@ for my $exp (0 .. 1000) {
close ( F ) ;
close ( $ fh ) ;