首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用H.323测试传统语音邮件系统

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

Stack Overflow用户
提问于 2010-11-10 22:41:24
回答 2查看 848关注 0票数 5

我被要求开发一个脚本,可以通过H.323拨打需要更好监控的语音邮件系统。(设备以神秘的方式死亡,并且在snmp上提供的功能很少)。这个想法是呼叫一个号码,看看线路是否有应答。如果出现问题,语音信箱系统将振铃忙或不应答。

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

在搜索H.323时,我发现了一个黑兔洞。我不懂C,也不想把pbx作为客户端运行,我找到了开源库,但没有"call()“函数。我没有足够的周期去学习每一个输入和输出。

(如果这不是为了工作,我会连接几行python,并使用Twilio来完成所有繁重的工作。)

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

谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-10-18 05:47:33

要发出测试H.323呼叫,您不能击败ohphone:

代码语言:javascript
复制
(sleep 30; echo q) | ohphone -s Default -n -u from_user to_user@gateway > /tmp/output.$$

您通常可以在您的linux发行版中找到ohphone:

代码语言:javascript
复制
apt-get install ohphone

源代码可以在voxgratia上找到,虽然版本较旧,但它仍然工作得很好。

使用ohphone处理输出有点麻烦,但您可以使用类似于perl脚本的东西将其处理为errno值。

这里有一个简单的例子可以做到这一点:

代码语言:javascript
复制
#!/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;

这个脚本已经有好几年的历史了,但在这段时间里,它对我们来说工作得很好。

票数 3
EN

Stack Overflow用户

发布于 2010-11-10 23:41:31

有一些SIP测试工具可用于生成SIP流量。我过去曾在大学项目中使用过SIPp,也许这对你有帮助

**EDIT:**

快速搜索一下就会发现Yate Seagull我还没有用过它们,但它们可能解决了您的问题。如果你发现了什么,一定要把它贴出来。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4145601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档