[Frage] Paging / Ping Anruf von der Linux Console (ohne X, ohne Audio) erzeugen?

fox_tbyayy

Neuer User
Mitglied seit
11 Jun 2016
Beiträge
3
Punkte für Reaktionen
0
Punkte
1
Hallo.

Mir ist es mit einem DVB-T Stick gelungen ein 433 Signal von meiner Wetterstation und vor allem (für mich/uns wichtig) von der Türklingel abzufangen :)

Nun würde ich gerne alle meine Telefone bei einem Klingel Signal kurz klingeln lassen.

Ich müsste im Grunde nur in meine FritzBox ein neues VoIP/Softphone einrichten, welches ich Türklingel nenne. Die internen Account Daten in einer Consolen SIP-Anwendung hinterlegen und im falle eines "Klick-Drück"-Events von der BASH die Sipsoftware starten, fix einloggen, kurz 2-10 Sekunden einen Rufruf (**9) ausführen.

Nun ist nur die Frage, wo man so eine SIP-Software herbekommen könnte. Leider sind alle SIP-Phones die ich finden konnte an X gebunden. Doch auf meinem MiniComputer ist nicht genug Leistung für ein X. Zumal man erstmal eingeloggt sein müsste um überhaupt die Software zu starten. Und dann diese wohl sicher auch nicht von der Console steuern könnte.

Gibt vielleicht gar eine Python oder PHP Basierende Software?

Beste Grüsse. Hoffe sehr jemand kennt zufällig etwas.


PS: Warum der Aufwand.. Die drei 433 MHz-Stationen klingeln manchmal nicht. Und die Batterien halten auch oft nur 2 Monate. Ein direktes Netzteil störte scheinbar zu sehr den 433 MHz Empfang. Und wenn man einfach 5 Fritz Fons hat, die so perfekt laufen und in jedem Zimmer stehen, wäre es doch Toll sie auch dafür nutzen zu können. Aber nicht gleich als Gegensprechanlage. Das wäre doch zu auffällig. Und im Grunde gehts nun nur noch um die passende Software, der Rest klappt bereits :)
 
Na ja, sooo schwer ist so etwas eigentlich gar nicht zu finden: https://github.com/tmakkonen/sipcmd

BTW: Hat ein "433 Signal" irgendwas mit einer Formation auf dem Spielfeld zu tun? Oder fehlen da bloß ein paar Millionen Her(t)zen?
 
Zuletzt bearbeitet:
'sipsak' scheint etwas verbreiteter zu sein als 'sipcmd'. Einfach z.B.
Code:
sipsak -s sip:@<IP> -I -l 5090 -r 5060
ausfuehren, schon klingelts auf <IP> :)

wer allerdings ein vernueftiges CLI SIP "Tool" braucht, verwendet natuerlich gleich 'asterisk' selbst. Gibt es fuer fast alle Linux Systeme als fertiges installierbares Paket.

Mehr als 'chan_alsa' oder 'chan_oss' des Asterisk kann kein anderes Softphone. UNd dabei alles mit purem CLI / ohne laestige GUI
 
Na ja, sooo schwer ist so etwas eigentlich gar nicht zu finden: https://github.com/tmakkonen/sipcmd

BTW: Hat ein "433 Signal" irgendwas mit einer Formation auf dem Spielfeld zu tun? Oder fehlen da bloß ein paar Millionen Her(t)zen?

Probiert, kompiliert und verzweifelt :-( - Scheinbar haben die Entwickler irgendwas falsch gemacht. Einige Parameter lassen sich gar nicht setzen, da sie einfach nicht existieren.

Code:
# Aus der Hilfe....
# -r <nmbr>   --remoteparty <nmbr>  the party to call to ********

/opt/sip/sipcmd/sipcmd --user 620 --password MEINPASSWORT --protocol sip --gateway 192.168.0.1 -r 11
Starting sipcmd
in debug mode
Manager
Init
unknown option "-r"    ********
initialising SIP endpoint...
Listening for SIP signalling on 0.0.0.0:TestChanAudio
TestChanAudio
5060
SIP listener up
registered as sip:[email protected]
Created LocalEndPoint
Main
TestPhone::Main: shutting down
TestPhone::Main: exiting...
Exiting...
~Manager

Dann nochmal so probiert, wenn ich es richtig verstanden habe
Code:
/opt/sip/sipcmd/sipcmd --user 620 --password MEINPASSWORT --protocol sip --gateway 192.168.0.1  --execute "c11;w6000;h;"

etting up a call to: sip:[email protected]
LocalEndpoint::MakeConnection
LocalEndpointCreateConnection
LocalConnection
OnIncomingConnection: token=L49bbfb212
connection set up to sip:[email protected]
TestPhone::Main: calling "sip:[email protected]" for 2
OnOpenMediaStream
recording media from sip
CreateMediaStream
TestChannel[ Call[C8b99da911]-EP<local>[L49bbfb212] - 0xae529ec0 ]
OnOpenMediaStream
streaming media to local
TestChannel::Write
TestChannel::Write
CreateMediaStream
TestChannel[ Call[C8b99da911]-EP<local>[L49bbfb212] - 0xae53c848 ]
OnOpenMediaStream
recording media from local
OnOpenMediaStream
streaming media to sip
TestChannel::Write
TestChannel::Write
TestChannel::Write
TestChannel::Write
TestPhone::Main: calling "sip:[email protected]" for 3
... 200 mal wiederholt bis 10 ...
TestPhone::Main: calling "sip:[email protected]" for 10
TestChannel::Write
TestChannel::Write
Problem running command sequence ("c11;w6000;h;"):
  Call: Dial timed out
TestPhone::Main: shutting down
TestChannel::Write
OnClosedMediaStream
Close [ Call[C8b99da911]-EP<local>[L49bbfb212] - 0xae529ec0 ]
TestChanAudio::CloseChannel
StopAudioPlayback
StopAudioRecording
OnClosedMediaStream
OnClosedMediaStream
Close [ Call[C8b99da911]-EP<local>[L49bbfb212] - 0xae53c848 ]
TestChanAudio::CloseChannel
StopAudioPlayback
StopAudioRecording
OnClosedMediaStream
OnReleased: reason: EndedByLocalUser
OnReleased: reason: EndedByLocalUser
OnClearedCall
~LocalConnection
TestPhone::Main: exiting...
Exiting...
~Manager

Kein Klingeln nur jede Menge Locale Ausgabe. Recht ernüchtern leider :-(

- - - Aktualisiert - - -

'sipsak' scheint etwas verbreiteter zu sein als 'sipcmd'. Einfach z.B.
Code:
sipsak -s sip:@<IP> -I -l 5090 -r 5060



ausfuehren, schon klingelts auf <IP> :)...

Oh schön das war sogar im Paketmanager :)

Aber...
Code:
sipsak -vv --auth-username 620 --password MEINPASSWORD -s sip:[email protected] 


message received:
SIP/2.0 406 Not Acceptable
Via: SIP/2.0/UDP 192.168.0.244:59949;branch=z9hG4bK.4098d2a8;rport=59949;alias
From: <sip:[email protected]:59949>;tag=6e6de25c
To: <sip:[email protected]>;tag=7FA4E967CD6CF68B
Call-ID: [email protected]
CSeq: 1 OPTIONS
User-Agent: FRITZ!OS
Content-Length: 0



** reply received after 7.840 ms **
   SIP/2.0 406 Not Acceptable
   final received

Und dein spezieller Befehl nur um Verbose und AUTH erweitert...

Code:
sipsak -v -s sip:[email protected] --auth-username 620 --password MEINPASSWORD -I -l 5090 -r 5060
warning: ignoring -i option when in usrloc mode
received:
SIP/2.0 404 Not Found
Via: SIP/2.0/UDP 192.168.0.244:5090;branch=z9hG4bK.35d628cb;rport=5090;alias
From: <sip:[email protected]:5090>;tag=4530169
To: <sip:[email protected]>;tag=4746A6BC76B8E73F
Call-ID: [email protected]
CSeq: 1 INVITE
User-Agent: FRITZ!OS
Content-Length: 0


error: did not received the INVITE that was sent (see above). aborting

ohne -I -> SIP/2.0 406 Not Acceptable



Gleiche Zugangsdaten hab ich natürlich im PhoneLite geteste. Da funktioniert alles. Natürlich soll der Computer eigentlich AUS. Und Scriptfähig ist PhoneLite erst recht nicht.

Leider nicht ganz so einfach :-(

Gibt es nicht zufällig noch was alternativ für Python? - Die Sprache kann ich wenigsten ob vielleicht tiefer in den Code einzuauchen, um festzustellen, was wohl schief geht. Mein C leider mau :-(
 
Moins


Mit sipsak musst du so tun, als wenn es irgendein eingehender Anruf ist.
Muss der sich irgendwie registrieren :?: Nein :!:
Code:
sipsak -vvv -s sip:[Land][Vorwahl ohne führende 0][Nummer]@fritz.box:5060 -I -l 5090
Wobei...
[Land][Vorwahl ohne führende 0][Nummer]
...den Benutzernamen darstellt, wie er unter der Nummer, die du anrufen willst...
Eigene Rufnummern --Rufnummer bearbeiten--> Benutzername:
...zu finden ist.

Beispiel (für einen berliner 1&1 Benutzernamen): 493068081511
 
Moins


Mit sipsak musst du so tun, als wenn es irgendein eingehender Anruf ist.
Muss der sich irgendwie registrieren :?: Nein :!:
Code:
sipsak -vvv -s sip:[Land][Vorwahl ohne führende 0][Nummer]@fritz.box:5060 -I -l 5090
Wobei...
[Land][Vorwahl ohne führende 0][Nummer]
...den Benutzernamen darstellt, wie er unter der Nummer, die du anrufen willst...
Eigene Rufnummern --Rufnummer bearbeiten--> Benutzername:
...zu finden ist.

Beispiel (für einen berliner 1&1 Benutzernamen): 493068081511

*kopfkratz* eingehend? Ich will doch zur 11 (welche die FritzBox an alle Handtelefone weitergibt) raustelefonieren. *nun total verwirrt ist*


Ich lasse gerade nun noch was anderes.... pjsip kompilieren. Aber ich glaube das wird nix. Läuft schon 3 Stunden... Dafür ist die kleine Box zu schwach. War sicher eine falsche Wahl.
 
Bei mir klingelt nach dem Aufruf von
Code:
./sipcmd -P sip -u 622 -c [I]password[/I] -w [I]fritzbox-ip[/I] -x "c**610;w10000;h"
das DECT-Telefon mit der 610 und hört nach 10 Sekunden damit wieder auf.

Die Ausgabe der Optionen stimmt zwar tatsächlich nicht mit dem eigentlichen C++-Code überein, aber wenn es nur um reine Signalisierung geht, funktioniert das so ...

Da man meines Wissens (gerne korrigieren, wenn ich mich irre) mit "sipsak" nur einzelne SIP-Messages verwenden kann (seitdem es berlios.de nicht mehr gibt, fehlt m.W. sipsak auch die Website, nur die Quellen findet man noch auf SF), wird das mit der FRITZ!Box eher nichts werden.

Es soll hier ja ein Rundruf (o.ä.) als SIP-Client gestartet werden und keine INVITE-Message an einen Client direkt gesendet werden. Das müßte man dann tatsächlich an jedes Telefon, das dann klingeln soll, einzeln machen und auch da beißt man (heutzutage hoffentlich!) bei einer einzelnen INVITE-Message auf Granit, solange man nicht der Registrar ist, von dem das Telefon solche Nachrichten erwartet.

Um der FRITZ!Box aber ein INVITE für einen Rundruf zu senden, muß man als SIP-Client angemeldet sein, mithin den ganzen steinigen Weg über 2x REGISTER gegangen sein. Das kann "sipsak" eher nicht ... und auch "sipcmd" könnte u.U. Probleme bekommen, wenn man zu schnell zu viele REGISTER/INVITE-Messages absetzt, dann kommt es schon mal zu einem:
Code:
Jun 12 21:51:18 (none) user.err voipd[3248]: [COLOR="#FF0000"]BUG useragent_register: ua is not registrant[/COLOR]
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt] of voipd[[3248]]:
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt]  77b7d894 bugmsg+0x30 (/lib/libavmcsock.so.2 at 00050864/0x50894)
Jun 12 21:51:18 (none) user.err voipd[3248]:                         Code: afa60030 afa70034 afa50018 <0320f809> 00000000 8fbf0024 03e00008 27bd0028 3c1c0003
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt]  77cfa56c useragent_register+0xe8 (/lib/libsiplib.so.2 at 0003f484/0x3f56c)
Jun 12 21:51:18 (none) user.err voipd[3248]:                         Code: 8f85802c 8f998174 2484d44c <0320f809> 24a5f128 8fbf0034 8fb00030 00001021 03e00008
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt]  77d03e04 uadialog_terminate+0x21c (/lib/libsiplib.so.2 at 00048be8/0x48e04)
Jun 12 21:51:18 (none) user.err voipd[3248]:                         Code: 7c6218c4 a4820040 8f9988d0 <0320f809> 8e0400a8 1000ff8f 8fbc0018 0320f809 02002021
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt]  77d079d0 uadialogs_established+0x114 (/lib/libsiplib.so.2 at 0004c8bc/0x4c9d0)
Jun 12 21:51:18 (none) user.err voipd[3248]:                         Code: 02a03821 8fbc0010 8f998210 <0320f809> 02002021 8fbc0010 1000ffd5 26310001 8f998394
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt]  77d07b70 uadialog_established+0xbc (/lib/libsiplib.so.2 at 0004cab4/0x4cb70)
Jun 12 21:51:18 (none) user.err voipd[3248]:                         Code: 03200008 27bd0020 8f9988f8 <0320f809> 02002021 8e0200a8 10400007 8fbc0010 8c5900ec
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt]  77ccff4c [77cced44] <0+0x77cced44>+0x1208 (/lib/libsiplib.so.2 at 00013d44/0x14f4c)
Jun 12 21:51:18 (none) user.err voipd[3248]:                         Code: 02202021 8fbc0018 8f9984c0 <0320f809> 02202021 1000ff26 8fbc0018 8f86802c 8f9981b0
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt]  77ca0e38 ict_rcv_2xx+0x54 (/lib/libosip2.so.4 at 00002de4/0x2e38)
Jun 12 21:51:18 (none) user.err voipd[3248]:                         Code: 02002821 ae020024 8e260008 <0320f809> 24040005 8fbc0010 02002021 8f998050 0320f809
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt]  77ca57f0 [77ca57d0] <fsm_callmethod+0x20>+0x20 (/lib/libosip2.so.4 at 000077d0/0x77f0)
Jun 12 21:51:18 (none) user.err voipd[3248]:                         Code: afbf001c 8fa40030 8c590008 <0320f809> 00e02821 8fbf001c 00001021 03e00008 27bd0020
Jun 12 21:51:18 (none) user.err voipd[3248]: [bt] caller return <= _ftext: 00000000 00000000 (?)

Aber man kann natürlich auch Asterisk verwenden ... wobei das eben wieder mit Kanonen auf Spatzen geschossen wäre. Event. kann man ja noch darüber nachdenken, den 1011-Port des "telefon"-Daemons auf der FRITZ!Box nach außen zu legen (das meint nicht wirklich das Internet, sondern das LAN außerhalb der FRITZ!Box) und dort dann mit AT-Befehlen wählen lassen ... aber das erfordert dann wieder Änderungen am FRITZ!OS, was auch nicht jedermanns Sache ist (und schon gar nicht in Python möglich wäre).

EDIT: Nun, vielleicht kann "sipsak" tatsächlich auch INVITE nach REGISTER ... aber ich denke eher, daß es ein INVITE mit WWW-Authenticate-Header wird, habe aber gerade weder Zeit noch Lust, da in die Quellen zu sehen.
 
Zuletzt bearbeitet:
:gruebel:
*kopfkratz* eingehend? Ich will doch zur 11 (welche die FritzBox an alle Handtelefone weitergibt) raustelefonieren. *nun total verwirrt ist*
Ha, wäre auch nicht verwunderlich. Ich hab mindestens mehrere Monate dafür gebraucht.

Du kannst jede in der Box angelegte Nummer so erreichen.
Auch irgendwelche Fakenummern die sich nirgendwo registrieren.
Hauptsache sie ist irgendeinen Gerät (Telefon) zugewiesen.
Und das Beste, es greifen, weil es der FB immer als externer eingehender Anruf vorkommt, die Rufbehandlungen.
rul.jpg
Zum Beispiel: Rufumleitung auf AB ( 600 ), Memofunktion ( 605 ), alle DECT ( 50 ), oder Alle ( 9 )
 
Zuletzt bearbeitet:
Hat sich das hier nun eigentlich erledigt?

Ich werde mal vorsichtshalber mein Abonnement hier entfernen - sollte allerdings nun eine funktionierende Lösung existieren (der Kardinalfehler war ja offenbar der Versuch, die interne Rufnummer ohne vorangestellte Sterne zu wählen), wäre es für spätere Leser ja auch ganz nett, wenn diese hier zumindest mal kurz vorgestellt wird und dann ggf. sogar der Thread auf [solved] gesetzt würde, weil dann schon in der Suchmaschine zu sehen ist, daß dieser Thread eine Lösung anbieten könnte.
 
wenn man nur den Thread Titel liest, dann funktioniert mein Vorschlag von oben sehrwohl (getestet z.B. an meinem Asterisk oder direkt auf meine Gigaset C610IP). Die 'Einschraenkungen', die dazu fuehren, dass es beim TO vielleicht doch nicht gleich funzt werden dann ja erst so nach und nach erst sichtbar.
 
Moins


@sparkie: Besonders wenn es direkt im LAN an ein echtes IP-Telefon geht

Beispiel, um ein SNOM mit jeden beliebigen Klingelton signalisieren zu lassen...
Code:
sipsak -vvv -s sip:[email protected]:5060 -I -l 45090 -H fritz.box -j [COLOR="#FF0000"]"Alert-Info: <http://osmc/ctu.wav>"[/COLOR]
 
Das wollte und will ich niemals bestreiten ... Du hast ja u.a. auch auf Asterisk als denkbare Lösung hingewiesen.

Was mich hier (vollkommen unabhängig davon, wer das nun geschrieben hat) wirklich interessiert ... akzeptiert die FRITZ!Box nun ein INVITE mit korrektem WWW-Authenticate-Header auch dann, wenn der betreffende Client sich nicht vorher mit REGISTER angemeldet hat oder erzeugt da "sipsak" (welche Version?) tatsächlich REGISTER-Messages (inkl. Wiederholung wg. Digest-Auth) vor so einem INVITE?

Das interessiert mich schon deshalb, weil ich so einer Möglichkeit dann wieder "hinterherschnüffeln" würde ... ich hätte da ein paar Fragen an diese Implementierung, wenn das event. von intern (also vom LAN) sogar ohne korrekte (erneute) Authentifizierung im INVITE-Paket funktionieren sollte, weil vielleicht ein IP-Telefon (per UDP) als SIP-Client registriert ist und der INVITE-Request dem Anschein nach von der richtigen internen IP-Adresse kommt, unter der dieses IP-Telefon sich registriert hat. Wenn das funktionieren sollte (ich hoffe inständig, es ist nicht der Fall), wäre es ja wieder simpel, das für einen Angriff auszunutzen, zumindest was die SIP-Signalisierung angeht.

@koy:
Das ist ebenfalls unstrittig (auch die Möglichkeit, über ein externes INVITE an die IP-Adresse ein Gespräch aufzubauen, wenn das immer noch funktionieren sollte mit aktueller Firmware), aber in #1 stand auch ganz deutlich zu lesen (jedenfalls habe ich es so verstanden), daß hier ein kleiner Rechner als SIP-Client an der FRITZ!Box angemeldet werden soll und dann dort eine SIP-Signalisierung eines Anrufes von diesem Client erfolgen soll (sogar als Rundruf über **9, denn auch das steht in #1 ganz klar da). Das geht mit einem INVITE-Paket an ein Snom als Client eben doch nicht ...
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.