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

Drei sind auch OK, ggf. fehlt nur die Netzwerkkarte.
Muss also nichts heissen, Du kannst da alles beliebig an- und ausstellen.
Alle Huawei-Befehle findest du auf dieser Seite.

BTW: Ich hab mir Asterisk vor 2 Tagen zum ersten mal angeschaut, kann mir jemand zufällig sagen, wie ich die DatacardSendSMS-Funktion von der Shell aufrufen und Parameter mit übergeben kann? Ich kann ja eine Extension 500 anlegen, hier die Funktion aufrufen und die dann per
Code:
asterisk -rx "console dial 500"
starten. Ich möchte aber gerne noch Parameter für Text und Nummer mitgeben.


Edit: Möglichkeit gefunden, zumindest kann ich die Empfängernummer wählen

extensions.conf
Code:
[sms]
exten => _X.,1,DatacardSendSMS(stick,${EXTEN},"TEXT")

und dann per
Code:
asterisk -rx console dial NUMMER@sms
senden.

Das führte zuerst zu Fehlermeldungen seitens des Modems. Nach 2h dann die Lösung: Die SMS werden im Textformat jedoch UCS2 codiert. Das heisst auch die Empfängernummer muss im UCS2 Format angegeben werden, damit die SMS auch versandt wird.
 
Zuletzt bearbeitet:
Wenn du das dem entwickler schreibst von chan_datacard macht er vielleicht einen fix...
 
Wie äußert sich denn das "nicht funktionieren" eines E160? Ich kann damit unter Windows telefonieren und am Asterisk bekomme folgendes:
Code:
localhost*CLI> datacard show devices
ID              Group  Connected State Voice SMS   RSSI  Mode  Submode Provider Name   Manufacturer Model      Firmware          IMEI             
vodafone        1      Yes       Free  Yes   Yes   17    0     0       Vodafone.de     huawei       E160       11.609.08.00.156  35159xxxxxxxxxx
Wählen rein und raus klappt auch. Leider hört der externe Teilnehmer nur ein Rauschen, unabhängig davon, in welche Richtung das Gespräch aufgebaut wurde. Vielleicht noch eine andere Idee, was falsch sein könnte? Oder ist es DAS unlösbare Problem beim E160?

Stefan
 
Hallo allerseits,

also ich kann schonmal beitragen, dass es mit einem Huawei E160 weitestgehend funktioniert...

Bei ausgehenden Anrufen scheint es keine Probleme zu geben (denke ich zumindest soweit)

Audio-Port ist auf /dev/ttyUSB1 gestellt.

Allerdings habe ich das Problem, dass eingehende Anrufe nicht auf dem data_tty, also bei mir /dev/ttyUSB0 signalisiert werden... Wenn ich diesen Port auf /dev/ttyUSB2 ändere, merkt der Asterisk zwar, dass Anrufe ankommen; nach wenigen Sekunden bricht allerdings die Verbindung zum Stick zusammen und braucht einige Reconnect-Versucht seitens des Servers, bis der Stick wieder da ist. Gleiches Problem bei dieser Portwahl mit ausgehenden Anrufen.

Vorhin hatte es allerdings mal geklappt, dass eingehende Anrufe ordentlich behandelt werden... Allerdings habe ich danach ein AT^DDSETEX=2 ausgeführt, weil ich dachte, dass sich damit das Ring auf den ttyUSB0 umlenken lässt...

Hat jemand eine Idee, wo jetzt das Problem ist?
 
In rev 49 gibt es einen kleinen bug.
Die Variable SMSSRC (from_number) ist eine Stelle zu kurz, d.h. die letzte Ziffer der Rufnummer (SMS-Absender) fehlt.

Könnte man vielleicht auch 'hints' integrieren?

Gruss
Netview
 
Hi,

ich hatte beim SMS-Versand noch ein ganz anderes Problem: es wurden nur die ersten 40 Zeichen gesendet. Tritt das bei euch auch auf?

Habe das jetzt erstmal selbst gefixt und an den Entwickler geschickt. Kann ja mal schauen, ob sich der SMSSRC-Fehler auch finden lässt ;)

Grüße
Thomas

PS: Bevor noch jemand Unmengen Zeit vertrödelt: Ich habe gestern ewig damit zugebracht zu merken, dass zwischen den Argumenten von DatacardSendSMS keine Leerzeichen sein dürfen...
 
stimmt - die SMS wird abgeschnitten!
 
@marley87

Hallo Thomas!

Könntest du deinen patch mal hier posten?

Leider ist der Entwickler wohl derzeit mit der Integration des Jitterbuffers beschäftigt und dein patch wurde "leider" noch nicht online gestellt (wobei ich diesen für besonders elementar halte)!

Gruss
Holger
 
sehe ich genau so
 
@Fredjam
Hast du schon eine Lösung für das Disconnecten des Sticks gefunden. Meiner ist immer so nach ca. 10 Stunden nicht mehr da, d.h. ich habe keine ttyUSB Ports mehr und kann ihn auch nicht mehr mit lsusb finden. Muss ihn dann auch aus- und wieder einstecken.
 
Habe die dateien bekommen und bin echt zufrieden... so auf anhieb hat noch nichts geklappt :)

Hat einer ein Trick um bei dem MedionMobile Stick (HUAWEI E160) den flash speicher zu deaktivieren? lsusb zeigt mir nur den speicher an.
 
hier die rev50, siehe anhang :)
 

Anhänge

  • chan_datacard.tgz
    115.7 KB · Aufrufe: 32
Hat einer von euch auch das Problem mit den CUSD übertragungen, mit einer o2 Prepaid karte funktionieren die Befehle. Aber mit einer D2 Karte nicht. Ich bekomme auf keinen der befehle eine Antwort....
 
Ich habe Asterisk auf einem Debian-Server laut der Anleitung aus dem ersten Beitrag mit dem Modul 'chan_datacard' aus dem 75. Beitrag kompiliert. Das funktionierte soweit ohne Abbruch, im Ordner /usr/lib/asterisk/modules liegt seit dem auch die Datei chan_datacard.so.

Ich habe allerdings folgende Warnmeldungen beim Kompilieren erhalten:
Code:
   [CC] chan_datacard.c -> chan_datacard.o
chan_datacard.c:93: warning: function declaration isnât a prototype
chan_datacard.c:94: warning: function declaration isnât a prototype
chan_datacard.c:4713: warning: function declaration isnât a prototype
chan_datacard.c:4726: warning: function declaration isnât a prototype
   [LD] chan_datacard.o -> chan_datacard.so
Nach dem Start von Asterisk habe ich versucht in der CLI 'datacard show devices' aufzurufen, leider ohne Erfolg.

Code:
s2*CLI> datacard show devices
No such command 'datacard show devices' (type 'core show help datacard show' for other possible commands)
Anschließend habe ich festgestellt, dass das Modul 'chan_datacard' nicht geladen ist. Beim Laden des Moduls bekomme ich die folgende Warung:

Code:
s2*CLI> module load chan_datacard
Unable to load module chan_datacard
Command 'module load chan_datacard' failed.
[Apr  2 21:01:17] WARNING[8098]: loader.c:428 load_dynamic_module: Error loading module 'chan_datacard': /usr/lib/asterisk/modules/chan_datacard.so: undefined symbol: utf8_to_hexstr_ucs2
Ich hoffe Ihr könnt mir helfen... =)
 
Zuletzt bearbeitet:
Hat die .so auch genügent rechte?
hast du die datei per hand oder per make install verschoben?

wenn du hier alles richtig gemacht hast kannst du das modul auch manuell laden.
 
Hat die .so auch genügent rechte?
Ich denke schon, da alle anderen Module in dem Ordner '/usr/lib/asterisk/modules' die gleichen Rechte haben.
Code:
-rwxr-xr-x 1 root root  375503  2. Apr 21:32 chan_datacard.so
hast du die datei per hand oder per make install verschoben?
Ich habe die Dateien 'chan_datacard.c' und 'char_conv.*' in das Verzeichnis 'asterisk/channels' kopiert und anschließend den kompletten Asterisk mit './configure', 'make' und 'make install' kompiliert und installiert.

wenn du hier alles richtig gemacht hast kannst du das modul auch manuell laden.
Ich sehe in meiner Vorgehensweise momentan leider keinen Fehler. Beim manuellen Laden kommt dann der oben genannte Fehler.
 
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.