mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-19 12:46:03 +00:00
96_SIP: change ps to kill 0
git-svn-id: https://svn.fhem.de/fhem/trunk@21469 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
adc336c0a8
commit
76d9a895f6
@ -55,7 +55,7 @@ use Blocking; # http://www.fhemwiki.de/wiki/Blocking_Call
|
|||||||
#use Data::Dumper;
|
#use Data::Dumper;
|
||||||
|
|
||||||
|
|
||||||
my $sip_version ="V1.91 / 31.07.18";
|
my $sip_version ="V1.92 / 21.03.2020";
|
||||||
my $ua; # SIP user agent
|
my $ua; # SIP user agent
|
||||||
my @fifo;
|
my @fifo;
|
||||||
|
|
||||||
@ -378,14 +378,15 @@ sub SIP_Register($$)
|
|||||||
$sub_register = sub
|
$sub_register = sub
|
||||||
{
|
{
|
||||||
my $expire = $ua->register(registrar => $registrar ) || return "registration failed: ".$ua->error;
|
my $expire = $ua->register(registrar => $registrar ) || return "registration failed: ".$ua->error;
|
||||||
my $cmd = "ps -e | grep '".$hash->{parent}." '";
|
#my $cmd = "ps -e | grep '".$hash->{parent}." '";
|
||||||
my $result = qx($cmd);
|
#my $result = qx($cmd);
|
||||||
if (index($result,"perl") == -1)
|
#if (index($result,"perl") == -1)
|
||||||
|
unless (kill 0, $hash->{parent})
|
||||||
{
|
{
|
||||||
Log3 $name,1,"$logname, can´t find my parent ".$hash->{parent}." in process list !";
|
Log3 $name,1,"$logname, can´t find my parent ".$hash->{parent}." in process list !";
|
||||||
die;
|
die;
|
||||||
}
|
}
|
||||||
|
|
||||||
Log3 $name,4,"$logname, register new expire : ".FmtDateTime(time()+$expire);
|
Log3 $name,4,"$logname, register new expire : ".FmtDateTime(time()+$expire);
|
||||||
|
|
||||||
if (AttrVal($name,"sip_listen","none") ne "none")
|
if (AttrVal($name,"sip_listen","none") ne "none")
|
||||||
@ -2237,44 +2238,26 @@ return $html;
|
|||||||
<a name="SIPattr"></a>
|
<a name="SIPattr"></a>
|
||||||
<b>Attributes</b>
|
<b>Attributes</b>
|
||||||
<ul>
|
<ul>
|
||||||
<li>sip_audiofile_wfp<br>
|
<a name="sip_audiofile_wfp"></a><li>sip_audiofile_wfp<br>Audio file that will be played after <b>fetch</b> command. The audio file has to be generated via <br>
|
||||||
Audio file that will be played after <b>fetch</b> command. The audio file has to be generated via <br>
|
sox <file>.wav -t raw -r 8000 -c 1 -e a-law <file>.al<br>since only raw audio format is supported.</li><br>
|
||||||
sox <file>.wav -t raw -r 8000 -c 1 -e a-law <file>.al<br>
|
<a name="sip_audiofile_call"></a><li>sip_audiofile_call</li>
|
||||||
since only raw audio format is supported.
|
<a name="sip_audiofile_dtmf"></a><li>sip_audiofile_dtmf</li>
|
||||||
</li>
|
<a name="sip_audiofile_ok"></a><li>sip_audiofile_ok</li>
|
||||||
<li>sip_audiofile_call</li>
|
<a name="sip_listen"></a><li>sip_listen (none , dtmf , wfp)</li>
|
||||||
<li>sip_audiofile_dtmf</li>
|
<a name="sip_from"></a><li>sip_from<br>My sip client info, defaults to sip:620@fritz.box</li><br>
|
||||||
<li>sip_audiofile_ok</li>
|
<a name="sip_ip"></a><li>sip_ip<br>external IP address of the FHEM server</li><br>
|
||||||
<li>sip_listen (none , dtmf , wfp)</li>
|
<a name="sip_port"></a><li>sip_port<br>Optionally portnumber used for sip client<br>If attribute is not set a random port number between 44000 and 45000 will be used</li><br>
|
||||||
<li>sip_from<br>
|
<a name="sip_registrar"></a><li>sip_registrar<br>Hostname or IP address of the SIP server you are connecting to, defaults to fritz.box</li><br>
|
||||||
My sip client info, defaults to sip:620@fritz.box
|
<a name="sip_ringtime"></a><li>sip_ringtime<br>Ringtime for incomming calls (dtmf &wfp)</li><br>
|
||||||
</li>
|
<a name="sip_user"></a><li>sip_user<br>User name of the SIP client, defaults to 620</li><br>
|
||||||
<li>sip_ip<br>
|
<a name="sip_waittime"></a><li>sip_waittime<br>Maximum waiting time in state listen_for_wfp it will wait to pick up the call</li><br>
|
||||||
external IP address of the FHEM server.
|
<a name="sip_dtmf_size"></a><li>sip_dtmf_size 1 to 4 , default is 2</li><br>
|
||||||
</li>
|
<a name="sip_dtmf_loop"></a><li>sip_dtmf_loop once or loop , default once</li><br>
|
||||||
<li>sip_port<br>
|
<a name="sip_force_interval"></a><li>sip_force_interval default 300</li><br>
|
||||||
Optionally portnumber used for sip client<br>
|
<a name="sip_force_max"></a><li>sip_force_max default 99</li><br>
|
||||||
If attribute is not set a random port number between 44000 and 45000 will be used
|
<a name="phonebook"></a><li>phonebook default none , filename of own phonebook. each row : number,name</li><br>
|
||||||
</li>
|
<a name="history_size"></a><li>history_size default 0 , max rows in history list</li><br>
|
||||||
<li>sip_registrar<br>
|
<a name="history_file"></a><li>history_file default none, filename of history list</li><br>
|
||||||
Hostname or IP address of the SIP server you are connecting to, defaults to fritz.box.
|
|
||||||
</li>
|
|
||||||
<li>sip_ringtime<br>
|
|
||||||
Ringtime for incomming calls (dtmf &wfp)
|
|
||||||
</li>
|
|
||||||
<li>sip_user<br>
|
|
||||||
User name of the SIP client, defaults to 620.
|
|
||||||
</li>
|
|
||||||
<li>sip_waittime<br>
|
|
||||||
Maximum waiting time in state listen_for_wfp it will wait to pick up the call.
|
|
||||||
</li>
|
|
||||||
<li>sip_dtmf_size 1 to 4 , default is 2</li>
|
|
||||||
<li>sip_dtmf_loop once or loop , default once</li>
|
|
||||||
<li>sip_force_interval default 300</li>
|
|
||||||
<li>sip_force_max default 99</li>
|
|
||||||
<li>phonebook default none , filename of own phonebook. each row : number,name</li>
|
|
||||||
<li>history_size default 0 , max rows in history list</li>
|
|
||||||
<li>history_file default none, filename of history list</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
</ul>
|
</ul>
|
||||||
@ -2321,14 +2304,17 @@ return $html;
|
|||||||
<code>set <name> call <nummer> [<maxtime>] [<nachricht>]</code><br>
|
<code>set <name> call <nummer> [<maxtime>] [<nachricht>]</code><br>
|
||||||
Startet einen Anruf an die angegebene Nummer.<br>
|
Startet einen Anruf an die angegebene Nummer.<br>
|
||||||
Optional kann die maximale Zeit angegeben werden. Default ist 30.<br>
|
Optional kann die maximale Zeit angegeben werden. Default ist 30.<br>
|
||||||
Optional kann eine Nachricht in Form eines Audiofiles angegeben werden . Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben..
|
Optional kann eine Nachricht in Form eines Audiofiles angegeben werden.<br>
|
||||||
|
Das File ist mit dem vollen Pfad oder dem relativen ab dem Verzeichnis mit fhem.pl anzugeben.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<code>set <name> listen</code><br>
|
<code>set <name> listen</code><br>
|
||||||
Attribut sip_listen = dtmf :
|
Attribut sip_listen = dtmf :
|
||||||
Der SIP-Client wird in einen Status versetzt in dem er Anrufe annimmt. Der Ton wird als Echo zurückgespielt. Über die Eingabe von # gefolgt von 2 unterschiedlichen Zahlen und anschließendem Auflegen kann eine Zahl in das Reading <b>dtmf</b> übergeben werden.<br>
|
Der SIP-Client wird in einen Status versetzt in dem er Anrufe annimmt. Der Ton wird als Echo zurückgespielt. Über die Eingabe von # gefolgt von 2 unterschiedlichen Zahlen und anschließendem Auflegen kann eine Zahl in das Reading <b>dtmf</b> übergeben werden.<br>
|
||||||
Attribut sip_listen = wfp :
|
Attribut sip_listen = wfp :
|
||||||
Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet. Erfolgt an Anruf an den Client, wechselt der Status zu <b>ringing</b>. Nun kann das Gespräch via set-Command <b>fetch</b> angenommen werden. Das als sip_audiofile angegebene File wird abgespielt. Anschließend wechselt der Status wieder zu <b>listenwfp</b>.<br>
|
Der SIP-Client wird in einen Status versetzt in dem er auf Anrufe wartet. Erfolgt ein Anruf an den Client, wechselt der Status zu <b>ringing</b>.<br>
|
||||||
|
Nun kann das Gespräch via set-Command <b>fetch</b> angenommen werden. Das als sip_audiofile angegebene File wird abgespielt.<br>
|
||||||
|
Anschließend wechselt der Status wieder zu <b>listenwfp</b>.<br>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
@ -2336,70 +2322,39 @@ return $html;
|
|||||||
<a name="SIPattr"></a>
|
<a name="SIPattr"></a>
|
||||||
<b>Attributes</b>
|
<b>Attributes</b>
|
||||||
<ul>
|
<ul>
|
||||||
<li>sip_user<br>
|
<a name="sip_user"></a><li>sip_user<br>User Name des SIP-Clients. Default ist 620 (Fritzbox erstes SIP Telefon)</li></br>
|
||||||
User Name des SIP-Clients. Default ist 620 (Fritzbox erstes SIP Telefon)
|
<a name="sip_registrar"></a><li>sip_registrar<br>Hostname oder IP-Addresse des SIP-Servers mit dem sich das Modul verbinden soll. (Default fritz.box)</li><br>
|
||||||
</li>
|
<a name="sip_from"></a><li>sip_from<br>SIP-Client-Info. Syntax : sip:sip_user@sip_registrar Default ist sip:620@fritz.box</li></br>
|
||||||
<li>sip_registrar<br>
|
<a name="sip_from"></a><li>sip_ip<br>Die IP-Addresse von FHEM im Heimnetz. Solange das Attribut nicht gesetzt ist versucht das Modul diese beim Start zu ermitteln.</li><br>
|
||||||
Hostname oder IP-Addresse des SIP-Servers mit dem sich das Modul verbinden soll. (Default fritz.box)
|
<a name="sip_port"></a><li>sip_port<br>Optinale Portnummer die vom Modul benutzt wird.<br>
|
||||||
</li>
|
Wenn dem Attribut kein Wert zugewiesen wurde verwendet das Modul eine zufällige Portnummer zwichen 44000 und 45000</li><br>
|
||||||
<li>sip_from<br>
|
<li>Audiofiles
|
||||||
SIP-Client-Info. Syntax : sip:sip_user@sip_registrar Default ist sip:620@fritz.box
|
|
||||||
</li>
|
|
||||||
<li>sip_ip<br>
|
|
||||||
Die IP-Addresse von FHEM im Heimnetz. Solange das Attribut nicht gesetzt ist versucht das Modul diese beim Start zu ermitteln.
|
|
||||||
</li>
|
|
||||||
<li>sip_port<br>
|
|
||||||
Optinale Portnummer die vom Modul benutzt wird.<br>
|
|
||||||
Wenn dem Attribut kein Wert zugewiesen wurde verwendet das Modul eine zufällige Portnummer zwichen 44000 und 45000
|
|
||||||
</li>
|
|
||||||
<li><b>Audiofiles</b>
|
|
||||||
Audiofiles können einfach mit dem externen Programm sox erzeugt werden :<br>
|
Audiofiles können einfach mit dem externen Programm sox erzeugt werden :<br>
|
||||||
sox <file>.wav -t raw -r 8000 -c 1 -e a-law <file>.al<br>
|
sox <file>.wav -t raw -r 8000 -c 1 -e a-law <file>.al<br>
|
||||||
Unterstützt werden nur die beiden RAW Audio Formate a-law und u-law !<br>
|
Unterstützt werden nur die beiden RAW Audio Formate a-law und u-law !<br>
|
||||||
Statt eines echten Audiofiles kann auch eine Text2Speech Nachricht eingetragen werden.<br>
|
Statt eines echten Audiofiles kann auch eine Text2Speech Nachricht eingetragen werden.<br>
|
||||||
Bsp : attr mySIP sip_audiofile_call !Hier ist dein FHEM Server
|
Bsp : attr mySIP sip_audiofile_call !Hier ist dein FHEM Server </li><br>
|
||||||
</li>
|
<a name="sip_audiofile_wfp"></a><li>sip_audiofile_wfp<br>Audiofile das nach dem Command <b>fetch</b> abgespielt wird</li><br>
|
||||||
<li>sip_audiofile_wfp<br>
|
<a name="sip_audiofile_call"></a><li>sip_audiofile_call</br>Audiofile das dem Angerufenen bei set call vorgespielt wird</li><br>
|
||||||
Audiofile das nach dem Command <b>fetch</b> abgespielt wird.
|
<a name="sip_audiofile_dtmf"></a><li>sip_audiofile_dtmf<br>Audiofile das dem Anrufer bei listen_for_dtmf abgespielt wird</li><br>
|
||||||
</li>
|
<a name="sip_audiofile_ok"></a><li>sip_audiofile_ok<br>Audiofile das bei erkannter DTMF Sequenz abgespielt wird</li><br>
|
||||||
<li>sip_audiofile_call</br>
|
<a name="sip_listen"></a><li>sip_listen (none , dtmf, wfp)</li><br>
|
||||||
Audiofile das dem Angerufenen bei set call vorgespielt wird.
|
<a name="sip_ringtime"></a><li>sip_ringtime<br>Klingelzeit für eingehende Anrufe bei listen_for_dtmf</li><br>
|
||||||
</li>
|
<a name="sip_dtmf_size"></a><li>sip_dtmf_size</a><br>1 bis 4 , default 2 Legt die Läge des erwartenden DTMF Events fest</li><br>
|
||||||
<li>sip_audiofile_dtmf<br>
|
<a name="sip_dtmf_loop"></a><li>sip_dtmf_loop<br> once oder loop , default once</li><br>
|
||||||
Audiofile das dem Anrufer bei listen_for_dtmf abgespielt wird.
|
<a name="sip_waittime"></a><li>sip_waittime<br>Maximale Wartezeit im Status listen_for_wfp bis das Gespräch automatisch angenommen wird</li><br>
|
||||||
</li>
|
<a name="T2S_Device"></a><li>T2S_Device<br>Name des Text2Speech Devices (Wird nur benötigt wenn Sprachnachrichten statt Audiofiles verwendet werden)</li><br>
|
||||||
<li>sip_audiofile_ok<br>
|
<a name="T2S_Timeout"></a><li>T2S_Timeout<br>Wartezeit in Sekunden wie lange maximal auf Text2Speech gewartet wird</li><br>
|
||||||
Audiofile das bei erkannter DTMF Sequenz abgespielt wird.
|
<a name="audio_converter"><li>audo_converter<br>sox oder ffmpeg, default sox<br>
|
||||||
</li>
|
Ist für Text2Speech unbedingt erforderlich um die mp3 Dateien in Raw Audio umzuwandeln.<br>
|
||||||
<li>sip_listen (none , dtmf, wfp)</li>
|
Installation z.B. mit sudo apt-get install sox und die mp3 Unterstützung mit sudo apt-get install libsox-fmt-mp3</li><br>
|
||||||
<li>sip_ringtime<br>
|
<a name="sip_force_interval"></a><li>sip_force_interval default 300 </li><br>
|
||||||
Klingelzeit für eingehende Anrufe bei listen_for_dtmf
|
<a name="sip_force_max"></a><li>sip_force_max default 99</li><br>
|
||||||
</li>
|
<a name="phonebook"></a><li>phonebook default none<br>Dateiname des eigenen Telefonbuchs. Inhalt: zeilenweise Nr,Name</li><br>
|
||||||
<li>sip_dtmf_size</a><br>
|
<a name="history_size"></a><li>history_size default 0<br>max Anzahl von Zeilen in der Ruf/Anrufer Liste</li><br>
|
||||||
1 bis 4 , default 2 Legt die Läge des erwartenden DTMF Events fest.
|
<a name="history_file"></a><li>history_file default none<br>Dateiname der Ruf/Anrufer Liste</li><br>
|
||||||
</li>
|
|
||||||
<li>sip_dtmf_loop<br> once oder loop , default once</li>
|
|
||||||
<li>sip_waittime<br>
|
|
||||||
Maximale Wartezeit im Status listen_for_wfp bis das Gespräch automatisch angenommen wird.
|
|
||||||
</li>
|
|
||||||
<li>T2S_Device<br>
|
|
||||||
Name des Text2Speech Devices (Wird nur benötigt wenn Sprachnachrichten statt Audiofiles verwendet werden)
|
|
||||||
</li>
|
|
||||||
<li>T2S_Timeout<br>
|
|
||||||
Wartezeit in Sekunden wie lange maximal auf Text2Speech gewartet wird.
|
|
||||||
</li>
|
|
||||||
<li>audo_converter<br>sox oder ffmpeg, default sox<br>
|
|
||||||
Ist f¨r Text2Speech unbedingt erforderlich um die mp3 Dateien in Raw Audio umzuwandeln.<br>
|
|
||||||
Installation z.B. mit sudo apt-get install sox und noch die mp3 Unterstützung mit sudo apt-get install libsox-fmt-mp3
|
|
||||||
</li>
|
|
||||||
<li>sip_force_interval default 300 </li>
|
|
||||||
<li>sip_force_max default 99</li>
|
|
||||||
<li>phonebook default none , Dateiname des eigenen Telefonbuchs. Inhalt: zeilenweise Nr,Name</li>
|
|
||||||
<li>history_size default 0 , max Anzahl von Zeilen in der Ruf/Anrufer Liste</li>
|
|
||||||
<li>history_file default none, Dateiname der Ruf/Anrufer Liste</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
=end html_DE
|
=end html_DE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user