使用H.323测试旧语音邮件系统

2024-06-01 22:06:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我被要求开发一个脚本,可以通过H.323拨打需要更好监控的语音邮件系统。(该设备以神秘的方式消亡,通过snmp提供的功能非常有限)。我们的想法是拨打一个电话号码,看看是否有人接听。如果有问题,语音邮件系统将响铃忙或不应答。在

我的问题在于我对H.323和可用的库一无所知。(Perl是我公司的首选语言,但对于这种特定的语言,我可能可以不使用python或使用一些二进制程序)

我在搜索H.323时发现了一个黑暗的兔子洞。我不懂C或者不想把pbx作为客户机运行,我找到了开源库,但是没有“call()”函数。我没有周期去学习每一个进进出出。在

(如果不是为了工作,我会用python编写几行代码,然后使用Twilio来完成所有繁重的工作。)

我想我需要一些关于如何解决这个问题的指导。在

谢谢


Tags: 程序功能脚本语言方式二进制电话号码公司
2条回答

有一些SIP测试工具允许您生成SIP流量。我在过去曾把SIPp作为大学项目的一部分,也许这对你有帮助

**EDIT:**

快速搜索得到YateSeagull我没有用过它们,但也许它们能解决你的问题。如果你发现什么东西一定要贴出来。在

要拨打H.323测试电话,你不能打败ohphone:

(sleep 30; echo q) | ohphone -s Default -n -u from_user to_user@gateway > /tmp/output.$$

您通常可以在linux发行版中找到ohphone作为一个包:

^{pr2}$

源可以在voxgratia上找到 虽然年纪大了,它仍然工作得很出色。在

使用ohphone处理输出有点棘手,但是可以使用perl脚本之类的东西将其处理为errno值。在

下面是一个快速而肮脏的例子:

#!/usr/bin/env perl

$delay=$ARGV[0];
if(! $delay) { $delay = 10; }

$from=$ARGV[1];
if(! $from) { $from = "default_from_user"; }

$to=$ARGV[2];
if(! $to) { $to = "default_to_user"; }

$gateway=$ARGV[3];
if(! $gateway) { $gateway = "127.0.0.1"; }

print "Running: (sleep $delay; echo q ) | (ohphone -s Default -n -u $from $to\@$gateway)|\n";
open(IN,"(sleep $delay; echo q ) | (ohphone -s Default -n -u $from $to\@$gateway)|");

my $call_started=false;
my $call_completed=false;

my @results;

my $skip=1;
while($line=<IN>) {
 if($line=~/Listening interfaces/) {
  $skip=0;
  next;
 }
 if($skip) {
  next;
 }
 if($line=~/^Could not open sound device/) {
  next;
 }
 chomp($line);
 push(@results,$line);
 if($line=~/was busy$/) {
  print "$to: Called party busy\n";
  exit 1;
 }
 if($line=~/^Call with .* completed, duration (.*)$/) {
  print "$to: Completed duration $1 call.\n";
  exit 0;
 }
 if($line=~/has cleared the call, duration (.*)$/) {
  print "$to: Completed duration $1 call.\n";
  exit 0;
 }
 if($line=~/^Call with .* completed$/) {
  print "$to: No call duration.\n";
  exit 2;
 }
}

close(IN);

$result=join("\n",@results);
print "$ARGV[0]: Unknown results:\n$result\n";
exit 255;

这个剧本已经有好几年的历史了,但在那段时间里它对我们很有效。在

相关问题 更多 >