mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
96_SIP : add new reading caller_status
git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@13472 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
5f5b7dfcab
commit
5d766cbebc
@ -4,6 +4,7 @@
|
|||||||
# 96_SIP.pm
|
# 96_SIP.pm
|
||||||
# Based on FB_SIP from werner.meines@web.de
|
# Based on FB_SIP from werner.meines@web.de
|
||||||
#
|
#
|
||||||
|
# Forum : https://forum.fhem.de/index.php/topic,67443.0.html
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
#
|
#
|
||||||
@ -286,7 +287,7 @@ sub SIP_CALLStart($)
|
|||||||
$ua->loop( \$stopvar );
|
$ua->loop( \$stopvar );
|
||||||
}
|
}
|
||||||
|
|
||||||
$final = "unknow" if !defined($final);
|
$final = "unknown" if !defined($final);
|
||||||
# $ua->cleanup;
|
# $ua->cleanup;
|
||||||
return $name."|1|".$final."|".$peer_hangup if defined($peer_hangup);
|
return $name."|1|".$final."|".$peer_hangup if defined($peer_hangup);
|
||||||
return $name."|1|".$final."|".$stopvar if defined($stopvar);
|
return $name."|1|".$final."|".$stopvar if defined($stopvar);
|
||||||
@ -412,6 +413,17 @@ sub SIP_Set($@)
|
|||||||
readingsSingleUpdate($hash, "caller",$subcmd,1);
|
readingsSingleUpdate($hash, "caller",$subcmd,1);
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
elsif ($cmd eq "caller_status")
|
||||||
|
{
|
||||||
|
# die ersten beiden brauchen wir nicht mehr
|
||||||
|
shift @a;
|
||||||
|
shift @a;
|
||||||
|
# den Rest als ein String
|
||||||
|
$subcmd = join(" ",@a);
|
||||||
|
readingsSingleUpdate($hash, "caller_status",$subcmd,1);
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
elsif ($cmd eq "fetch")
|
elsif ($cmd eq "fetch")
|
||||||
{
|
{
|
||||||
readingsSingleUpdate($hash, "caller","fetch",1);
|
readingsSingleUpdate($hash, "caller","fetch",1);
|
||||||
@ -529,7 +541,7 @@ sub SIP_dtmf{
|
|||||||
$hash->{old} = $event;
|
$hash->{old} = $event;
|
||||||
if ($hash->{dtmf} > 2)
|
if ($hash->{dtmf} > 2)
|
||||||
{
|
{
|
||||||
SIP_telnet($hash,"set $my_name dtmf_event ".$hash->{dtmf_event});
|
SIP_telnet($hash,"set $my_name dtmf_event ".$hash->{dtmf_event}."\n");
|
||||||
$hash->{dtmf} = 0;
|
$hash->{dtmf} = 0;
|
||||||
$hash->{dtmf_event} = "";
|
$hash->{dtmf_event} = "";
|
||||||
$hash->{old} ="-";
|
$hash->{old} ="-";
|
||||||
@ -543,18 +555,23 @@ sub SIP_invite{
|
|||||||
my $hash = $defs{$my_name};
|
my $hash = $defs{$my_name};
|
||||||
my $waittime = AttrVal($my_name, "sip_waittime", "10");
|
my $waittime = AttrVal($my_name, "sip_waittime", "10");
|
||||||
my $action;
|
my $action;
|
||||||
my $i=0;
|
my $i;
|
||||||
|
|
||||||
for($i=0; $i<$waittime; $i++)
|
for($i=0; $i<$waittime; $i++)
|
||||||
{
|
{
|
||||||
|
SIP_telnet($hash,"set $my_name caller_status ringing\nexit\n") if (!$i);
|
||||||
sleep 1;
|
sleep 1;
|
||||||
######## $$$ read state of my device
|
######## $$$ read state of my device
|
||||||
$action = SIP_telnet($hash,"get $my_name caller\n");
|
$action = SIP_telnet($hash,"get $my_name caller\n");
|
||||||
Log3 $my_name, 4, "$my_name, SIP_invite ->ringing $i : $action";
|
Log3 $my_name, 4, "$my_name, SIP_invite ->ringing $i : $action";
|
||||||
if ( $action eq "fetch" ) { last; }
|
if ( $action eq "fetch" )
|
||||||
|
{
|
||||||
|
SIP_telnet($hash,"set $my_name caller_status fetching\nexit\n");
|
||||||
|
last;
|
||||||
|
}
|
||||||
#$call->bye();
|
#$call->bye();
|
||||||
}
|
}
|
||||||
return;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub SIP_filter{
|
sub SIP_filter{
|
||||||
@ -576,7 +593,7 @@ sub SIP_bye{
|
|||||||
my $hash = $defs{$my_name};
|
my $hash = $defs{$my_name};
|
||||||
Log3 $my_name, 5, "$my_name, SIP_bye : $event";
|
Log3 $my_name, 5, "$my_name, SIP_bye : $event";
|
||||||
#print Dumper($event);
|
#print Dumper($event);
|
||||||
SIP_telnet($hash, "set $my_name caller hangup\nexit\n");
|
SIP_telnet($hash, "set $my_name caller none\nset $my_name caller_status hangup\nexit\n") ;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -587,7 +604,7 @@ sub SIP_ListenDone($)
|
|||||||
|
|
||||||
my @r = split("\\|",$string);
|
my @r = split("\\|",$string);
|
||||||
my $hash = $defs{$r[0]};
|
my $hash = $defs{$r[0]};
|
||||||
my $ret = (defined($r[1])) ? $r[1] : "unknow error";
|
my $ret = (defined($r[1])) ? $r[1] : "unknown error";
|
||||||
my $name = $hash->{NAME};
|
my $name = $hash->{NAME};
|
||||||
|
|
||||||
Log3 $name, 5,"$name, ListenDone -> $string";
|
Log3 $name, 5,"$name, ListenDone -> $string";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user