New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DTMF RFC2833 lost #64
Comments
What you show is only a debug message and does not indicate any actual problems. It is perfectly normal that there might be packet loss with UDP and Twinkle likely does not even report it in the first place. It would be a problem if there is actually a loss in the transmitted information (i.e. wrong DTMF sequence) but there is no indication of such a problem in your question. |
Ups, my bad. |
In this case please provide a full packet capture (pcap file, not text or image) from what you observe with the failing code and what you observe with the working code (Twinkle) so that one can detect the differences. And also provide all information to reproduce the issue, i.e. the full code and a detailed description of the setup. |
The pcap files: The code: #!/usr/bin/perl
use strict;
use warnings;
use Net::SIP;
use Net::SIP::Debug qw( Net::SIP*=3 Registrar=1 );
my $UA = Net::SIP::Simple->new(
from => '375',
outgoing_proxy => '10.2.60.110:5060',
registrar => '10.2.60.110:5060',
domain => '10.2.60.110:5060',
auth => [ 'xxx', 'xxx']
);
$UA->register(expires => 1800);
if($UA->error){ die $UA->error();}
my $RTPDone;
my $HangupPeer;
my $DTMFDone;
my $TimerTimeout;
my $DTMF = '';
my $DTMFCallback = sub {
my ($Event, $Duration) = @_;
$DTMF .= $Event;
if($Event eq '#'){ $DTMFDone = 1;}
};
$UA->listen(
init_media => $UA->rtp( 'send_recv', 'blindtext.wav'),
rtp_param => [8, 160, 160/8000, 'PCMA/8000'],
cb_rtp_done => \$RTPDone,
recv_bye => \$HangupPeer,
cb_dtmf => $DTMFCallback,
ring_time => 45
);
$UA->add_timer(60, \$TimerTimeout);
$UA->loop(undef, \$RTPDone, \$HangupPeer, \$DTMFDone, \$TimerTimeout);
print "DTMF: $DTMF\n"; It works with 1und1 but not with our telephone system whereas Twinkle does. |
Thanks for the details. Since you already have the code with debug running - code you please share the full debug output for a failing connection with at least debug level 40? |
Here is the link to the log with debug level 40. |
I cannot reproduce the issue when replaying the pcap data from the client in some test. It perfectly detects the DMTF sequence. Could you please rerun the test with debug level to 100, ideally with the version from 89f63b0 which adds more detailed debug output. |
I'm on vacation this week, so I won't be able to test it until Monday. |
New log with debug level 100: |
Thanks. Looks like I still need more debug info to understand why it fails. Could you please use 257f4d9 which adds more debugging to DTMF handling and create another log with debug level 100? |
The new debug message doesn't appear in the output. |
I think I've found the bug. Please check if ed072bb fixes the problem. |
It works now. But
see net-sip_test.log |
This fallout from the test is fixed. I've released a new Net::SIP version 0.836 which should fix your problem and pass all tests. |
Net::SIP::DTMF reports lost packets when I try to send DTMF events via
User-Agent: OpenScape Business
telephone system that supports RFC2833 for DTMF events only.Net::SIP::Debug
RTP captured by Wireshark
Net::SIP::Simple
A test with Twinkle as SIP endpoint works fine whereby all DTMF events were recognized.
Net::SIP::VERSION is 0.835.
Perl is 5.32.1
The text was updated successfully, but these errors were encountered: