[HowTo] Bezahlbares GSM-VoIP-Gateway auf Asterisk-Basis zum selber bauen

So meine ich es auch, wenn der ZTE kommt, geht der zurück, weil nicht das gekommen ist, was bestellt wurde.
Bzgl. dem was ich schrieb (was die Handyanbieter gar nicht freuen wird): Ich benutze das ganze auch nur netzintern. Auch empfehle ich hier keinem sich z.B. o2o zu holen und dann die ganze Verwandschaft darüber telefonieren zu lassen. Fair bleiben sollte man schon.
Für meine Vodafone-Flatrate zahle ich zum Beispiel 10 ¤ im Monat. Und wenn dann meine Schwester darüber ab und zu ihren Freund (Vodafone-Teilnehmer) anruft, dann finde ich es nicht so schlimm (bitte keine Diskussion anfangen bzgl. "das ist gegen AGB") - ich habe ein gutes Gewissen und dem Mobilfunkbetreiber entstehen für netzinterne Gespräche bekanntlich kaum Kosten.
 
Da es ne Bastellösung ist, juckt das die Anbieter auf keinsten (10 User auf 80 Millionen SIMs macht was?). Wenn AVM das Voice-UMTS-Feature integrieren würde - hui, das gäbe nen Schrei (Stichwort: Callthrough).
 
Hallo,

habe jetzt auch ein funktionierendes GSM-Gateway mit Asterisk auf meinem NC10-Netbook, nur ein Problem habe ich noch ! gibt es eine möglichkeit die Nummer des Anrufers auf das Siptelefon weiterzuleiten ? bei mir steht da immer "datacard0" oder "datacard1"ruft an.


habs selber rausgefunden.....habe einfach den callerid name gelöscht dann gings

exten => s,n,Set(CALLERID(name)=)

s50en
 
Zuletzt bearbeitet:
SERGII schlägt hier vor, wie man die UMTS-Sticks in einem Hub komplett ein- und ausschalten kann. Da steht (frei übersetzt):
SERGII schrieb:
Spannung an einzelnen Ports ein- und ausschalten:
1. Wir installieren libusb-dev
2. Wir laden runter http://www.gniibe.org/software/hub-ctrl.c
3. Das kompilieren wir: gcc -o hub-ctrl hub-ctrl.c -l usb
4. Wir testen:
4.1. Schauen wir was der anzeigt ./hub-ctrl : Hub #0 at 001:004
4.2. Wir schalten den 1. Port aus:
./hub-ctrl -b 001 -d 004 -P 1 -p 0
4.3. Wir schalten den ersten Port ein:
./hub-ctrl -b 001 -d 004 -P 1 -p 1

Hub D-Link DUB-H7 H/W Ver.: A5

./hub-ctrl zeigt:
INFO: individual power switching.
WARN: Port indicators are NOT supported.
Aber in Wirklichkeit funktionieren die Indikatoren und zeigen das Vorhandensein/Nichtvorhandensein der Betriebsspannung.

Ein/Ausschalten der Ports funktioniert mit und ohne eingeschaltetem Netzteil.

So schaut man, welche Hubs angeschlossen sind:
Code:
# ./hub-ctrl
Hub #0 at 001:063
 INFO: ganged switching.
 WARN: Port indicators are NOT supported.
Hub #1 at 001:029
 INFO: ganged switching.
Hub #2 at 001:002
 INFO: individual power switching.
So schauen wir auf den gewünschten Hub, z.B. auf 001:029
Code:
# sudo lsusb -v -s 001:029 | sed -n '/Hub Port Status/,+7p'
 Hub Port Status:
   Port 1: 0000.0503 highspeed power enable connect
   Port 2: 0000.0100 power
   Port 3: 0000.0101 power connect
   Port 4: 0000.0100 power
   Port 5: 0000.0503 highspeed power enable connect
   Port 6: 0000.0100 power
   Port 7: 0000.0100 power
So schalte ich Port Nummer 5 aus:
Code:
# ./hub-ctrl -b 001 -d 029 -P 5 -p 0
So schalte ich ihn wieder ein:
Code:
# ./hub-ctrl -b 001 -d 029 -P 5 -p 1

Einige Hubs, die das definitiv unterstützen: klick
hub-ctrl & hub-ctrl-2 für die 7270er FBF: klick

Nachtrag: Ich habe das nun anders gelöst: An einen normalen Hub (der wohl hub-ctrl nicht unterstützt) habe ich an den Anfang ein Relais angebracht. Solange das Relais mit Strom versorgt wird, wird auch der ganze Hub mit 5 Volt versorgt. Resultat: Durch einen Cronjob kann ich z.B. um 3:00 das ganze System rebooten lassen und für einige Sekunden wird die Stromversorgung des Relais unterbrochen.
 
Zuletzt bearbeitet:
t=5042&postdays=0&postorder=asc&start=1080]hier[/URL] vor. Da steht (frei übersetzt):

danke, sehr interessant. Steht da auch dabei fuer was der PowerOff da genau verwendet wird?

- um den Stick zum Leben zu erwecken, wenn er schon tot ist?
- zur Prophylaxe (alle 24h, damit er nicht stirbt)
- zu sonst einem Zweck?

die gelegenlichen kurzzeitigen 'USB disconnects' sind ja offenbar eine grundlegende Eigenschaft des Sticks und koennen gar nicht vermieden werden.
Allerdings stoeren die IMHO den Betrieb nicht, bzw. passieren nicht wenn der Stick aktiv genutzt wird.
Tante Google spuckt einiges zu den 'USB disconnects' aus..

Ich kann das leider nicht testen, da ich das nicht für OpenWrt kompilieren kann. Kann das jemand nachprüfen, ob man so die USB-Spannungsversorgung wirklich ausschalten kann (laut SERGII soll das gehen).
braucht man da einen externen HUB? Falls ja muesste ich mir erst einen besorgen.

- sparkie
 
Wenn ich das richtig verstanden habe, geht es mit einem Hub. Aber vielleicht geht das auch ohne...?
Wofür das verwendet wird, steht da nicht, aber SERGII sagt, dass damit der Stick ausgeschaltet wird (im Gegensatz zu dem, was du schon vor Tagen ausprobiert hast).
 
, aber SERGII sagt, dass damit der Stick ausgeschaltet wird (im Gegensatz zu dem, was du schon vor Tagen ausprobiert hast).

sehr schoen. Ich habe es gleich mal getestet:

Code:
root[/root] >  hub-ctrl
No hubs found.

braucht also wohl doch nen externen Hub. Ich hoffe ich komme morgen dazu mir einen zu besorgen.

sobald ich Infos habe werde ich berichten.

- sparkie
 
@psycho...

gcc -o hub-ctrl hub-ctrl.c -l usb

/openwrtpfad/staging_dir/toolchain-i386_gcc-4.1.2_uClibc-0.9.30.1/usr/bin/i486-openwrt-linux-uclibc-gcc -L /openwrtpfad/staging_dir/target-i386_uClibc-0.9.30.1/usr/lib -I /openwrtpfad/staging_dir/toolchain-i386_gcc-4.1.2_uClibc-0.9.30.1/usr/usr/include -o hub-ctrl hub-ctrl.c -lusb


sowas sollte es ca tun...

evtl. pfade anpassen;)

über dieses prob hatten wir ja schonmal gesprochen, du hast da wohl anderes toolchain

grüße:p
 
Ein User schlägt nun was anderes hier vor. Da steht (frei übersetzt)

also ich hab' jetzt doch noch nen alten USB Hub gefunden. Steht leider nichts drauf. Scheint irgendso ein 5EUR Teil zu sein. Bus/Dev IDs davon siehe unten.

Ergebnis: genial - funzt perfekt!

@PsychoMantis:
dank deiner russisch Kenntnisse kann ich jetzt individuell die Sticks an/abschalten, kein Shutdown mehr erforderlich - super:)
Und der Stick wird wirklich stromlos dabei. Betriebs-LED geht aus. Genauso wie wir es immer haben wollten.

Code:
# hub-ctrl
Hub #0 at 001:003
 INFO: individual power switching.

# hub-ctrl -b 001 -d 003 -P 3 -p 0 # switches off port 3
# hub-ctrl -b 001 -d 003 -P 3 -p 1 # switches on port 3

# lsusb
[...]
Bus 001 Device 003: ID 0409:0058 NEC Corp. HighSpeed Hub  # USB HUB in use
[...]

- sparkie
 
Hallo,

Ist hier eigentlich wer aus Wien? Möchte ein kleines Projekt realisieren und bin auf der suche nach fähigen Kollegen.
Wer Interesse hat und aus Wien ist sich bitte bei mir melden.
Es handelt sich um was änliches wie ein Callthrough System, Leider kann ich näheres nur in einem Persönlichem Gespräch erläutern.

MfG
 
Zuletzt bearbeitet:
Könntest ja mal schreiben um was es geht.
 
Hallo,

ich hab ein kleines Problem mit meinem Gsm Gateway, ich benutze einen K3520 Umts stick. Wenn ich über Sipgate telefoniere ist die Sprachqualität top, wenn ich allerdings über den Umts stick raustelefoniere ist die Gesprächsqualität in eine Richtung sehr schlecht. Also mein Gesprächspartner versteht mich schlecht und ich ihn gut. Es hört sich irgendwie so ganz hallend an. Gibt es eine möglichkeit hier vlt etwas einzustellen oder ähnliches?

grüße s50en
 
Das ist leider so ein Thema...Es könnte an allem legen. txgain/rxgain könntest du mal versuchen, ansonsten könntest du auch mit dem jitterbuffer spielen. Dann könntest du versuchen dich direkt am GSM-Gateway einzuloggen (mit Softphone) und dann darüber versuchen zu telefonieren (es kann ja sein, dass die Zeit, für die ein Packet braucht um vom asterisk zum Endgerät zu kommen zu hoch ist). Wenn das alles nicht hilft, kannst du mal nach gucken, was (oder ob) du für ein USB-Hub verwendest. Empfohlen wird keins oder mit aktivem Netzteil. Und schließlich könnte man versuchen das ganze auf anderem System laufen zu lassen (hat man z.B. ein Debian gehabt, kann man es mit OpenWrt oder CentOS versuchen).
Vor allem das letztere soll Gerüchten zufolge am erfolgversprechendsten sein.
 
Im Readme stehen die Optionen.

Code:
[general]

interval=15                     ; Number of seconds between trying to connect to devices

jbenable = yes                  ; Enables the use of a jitterbuffer on the receiving side of a
                                ; Datacard channel. Defaults to "no". An enabled jitterbuffer will
                                ; be used only if the sending side can create and the receiving
                                ; side can not accept jitter. The Datacard channel can't accept jitter,
                                ; thus an enabled jitterbuffer on the receive Datacard side will always
                                ; be used if the sending side can create jitter.

jbforce = no                    ; Forces the use of a jitterbuffer on the receive side of a Datacard
                                ; channel. Defaults to "no".

jbmaxsize = 200         ; Max length of the jitterbuffer in milliseconds.

jbresyncthreshold = 1000        ; Jump in the frame timestamps over which the jitterbuffer is
                                ; resynchronized. Useful to improve the quality of the voice, with
                                ; big jumps in/broken timestamps, usually sent from exotic devices
                                ; and programs. Defaults to 1000.

jbimpl = fixed          ; Jitterbuffer implementation, used on the receiving side of a Datacard
                                ; channel. Two implementations are currently available - "fixed"
                                ; (with size always equals to jbmaxsize) and "adaptive" (with
                                ; variable size, actually the new jb of IAX2). Defaults to fixed.

;jbtargetextra = 40             ; This option only affects the jb when 'jbimpl = adaptive' is set.
                                ; The option represents the number of milliseconds by which the new jitter buffer
                                ; will pad its size. the default is 40, so without modification, the new
                                ; jitter buffer will set its size to the jitter value plus 40 milliseconds.
                                ; increasing this value may help if your network normally has low jitter,
                                ; but occasionally has spikes.

;jblog = no


[datacard0]

audio=/dev/ttyUSB1 ; tty for audio connection
data=/dev/ttyUSB2 ; tty for AT commands

context=datacard-inbound ; context for incoming calls
group=1 ; calling group

rxgain=0 ; increase the incoming volume
txgain=-1 ; increase the outgoint volume


Ich hab dir meine conf mal angehängt. Experimentieren musst Du aber selbst. Bei mir war das Problem Echo und Übersteuert in Richtung Handy.
 
Es konnte beobachtet werden, dass manchmal ein UMTS-Stick im Status "BUSY" verbleibt, obwohl "core show channels" zeigt, dass kein Gespräch geführt wird (= Modem ist hängen geblieben und Asterisk leitet so natürlich keine Gespräche darüber). Nach einem "datacard reset" funktioniert dann alles bestens.
Hier hat varvar ein Script geschrieben, der das automatisch macht.
Hier die von mir geänderte Version, die auf meinem OpenWrt als cronjob läuft:
Code:
for card in `asterisk -rx "datacard show devices"|grep -i busy|awk '{print $1}'`
    do
        echo $card
        channel=$(asterisk -rx "core show channels" | grep -i $card)
        if [ -z "$channel" ]
            then
                echo "channel $card FREE"
                echo "reset datacard $card"
                asterisk -rx "datacard reset $card"
            else
                echo "channel $card BUSY"
        fi
    done

exit 0
 
Gibt es eine möglichkeit hier vlt etwas einzustellen oder ähnliches?

Schon mal versucht, die UMTS-Verbindung zu verbessern?

Ich habe genau das Problem mit einer Anbindung via UMTS-Router. Wenn die Feldstärke zu weit runter geht tritt ziemlich starker Hall auf.
 
Also die UMTS Verbindung könnte besser nicht sein :) hab das ganze zu nem Kumpel verlagert der wohnt ca. 50 Meter vom EPlus UMTS Sendemast weg. Eine entdeckung habe ich jedoch gemacht !! Wenn ich anstatt dem "Acrobits Softphone" auf dem Iphone meinen Xlite auf dem PC verwende, gibt es keine übersteuerung, da ich dort die Mikrofon lautstärke einstellen kann. Wenn ich mit txgain auf z.b. minus 5 gehe wird beim gesprächpartner nur alles leiser aber übersteuern tut es trotzdem noch.
 
mir mit lag das am rx / tx gain gab ihn nun bei -5 und 3 stehen damit tuts das bei mir bestens
 
hat jemand ein changelog von
firmware
11.314.21.31.00

zu

11.315.05.00.00

bzw. irgendwelche verbesserungen?

habe nichts gefunden.
aber da gibs ja ne scheinbar neuere firmware als die die psychomantis verwendet:)
 
Danke für diese Info. Habe ein Update durchgeführt:
Code:
OpenWrt*CLI> datacard show devices
ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware          IMEI             IMSI             Number
3            0     Free       20   0    0       BASE DE        K3520      11.314.21.31.00   xxxxxxxxxxxxxxx  xxxxxxxxxxxxxxx  +491xxxxxxxxx
2            0     Free       26   0    0       o2 - de        K3520      11.314.21.31.00   xxxxxxxxxxxxxxx  xxxxxxxxxxxxxxx  +49176xxxxxxxx
1            0     Free       24   5    4       Vodafone.de    K3520      11.315.05.00.00   xxxxxxxxxxxxxxx  xxxxxxxxxxxxxxx  +49173xxxxxxx
OpenWrt*CLI>
Das Firmwareupdate fand ich hier, in dem ich einfach "11.315.05.00.00" bei google eingab. Vorher noch die Treiber bei Vodafone besorgen.
Das Update scheint was positives gebracht zu haben - ein ganz bestimmter Fehler, welchen ich immer wieder reproduzieren konnte, scheint verschwunden zu sein.
 
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.