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

ändert bei mir leider nix

datacard.conf
Code:
[general]
interval=15			; Number of seconds between trying to connect to devices


[datacard1]
context=incoming-datacard	; context for incoming calls
audio=/dev/ttyUSB1		; tty port for audio connection
data=/dev/ttyUSB2		; tty port for AT commands
rxgain=3			; increase the incoming volume
txgain=3			; increase the outgoint volume
autodeletesms=yes		; auto delete incoming sms
resetdatacard=yes		; reset datacard during initialization
u2diag=0			; set U2DIAG parameter (0 = disable everything except modem function)
usecallingpres=yes		; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation
disablesms=yes			; chan_datacard has currently a bug with SMS reception. When a SMS gets in during a
				; call chan_datacard might crash. Enable this option to disable sms reception.
				; Default = no
 
Zuletzt bearbeitet:
Die datacard.conf ist inzwischen scheinbar umfangreicher geworden, ich bin schon eine Weile aus dem Thema draussen.
Bei mir gibt es noch
group=1

Wenn Dein Gerät [datacard1] heißt, müsstest Du eigentlich mit
exten => 602,1,Dial(Datacard/datacard1/0664xxxxx)
rauskommen.
Bitte achte auf das rote Zeichen, das scheinbar überall bei Dir fehlt.
 
das wird mir im asterisk-gui nicht angenommen wenn ichs manual eintrage und asterisk neustarte findet der keine route für 602
 
Zuletzt bearbeitet:
Aha, dann versuche es doch mal mit
exten => _602,1,Dial(Datacard/datacard1/0664xxxxx)
oder
exten => _602!,1,Dial(Datacard/datacard1/0664xxxxx)
 
Zuletzt bearbeitet:
Ich kenne mich mit diesem GUI nicht aus. Ohne GUI kann man es machen wie man mag. Versuch´s mal mit
Code:
exten => s,1,Dial(Datacard/datacard1/0664xxxxx)
;oder
exten => _0664.,1,Dial(Datacard/datacard1/{EXTEN})
 
Ich glaube eher, dass die Datacard schon durch irgend etwas belegt ist.
 
Hallo,

danke für das HowTo!

Leider erhalte ich folgende Fehlermeldung bei Verwendung mit einem E169-Stick:

Code:
    -- Datacard 1 has disconnected
    -- Datacard 1 trying to connect on /dev/ttyUSB1...
    -- Datacard 1 has connected, initializing...
    -- Error initializing Datacard 1
    -- Datacard 1 has disconnected

gsm1*CLI> datacard show devices
ID           Group State      RSSI Mode Submode Provider Name  Model      Firmware          IMEI             IMSI             Number
1            0     Not connec 0    0    0       NONE                                                                          Unknown

Code:
[general]
interval = 15

[1]
context = in
rxgain = 3
txgain = -3
autodeletesms = yes
resetdatacard = yes
u2diag = 0
audio = /dev/ttyUSB0
data = /dev/ttyUSB1
context = 1

Hat jemand einen Tipp?

Viele Grüße,
Philipp
 
HI Philipp,

hast Du schon mal andere ports ausprobiert?

z.b:
;[datacard_k3520]
;audio=/dev/ttyUSB1 ; tty port for audio connection
;data=/dev/ttyUSB2 ; tty port for AT commands
 
Oder nutze die weiterentwickelte chan_datacard-Version von bg1 hier. Der Herr aus Südrussland hat nämlich Makhutov´s Version genommen und die so weit weiter entwickelt, dass man die Ports weg lassen kann und stattdessen einfach imei=xxx bzw. imsi=xxxx in die datacard.conf schreiben kann. So entfällt natürlich auch die ganze Sache mit udev. Es geht auch viel mehr, siehe svn-log & todo.txt. Wer das ausprobieren mag, siehe install.txt.
 
Danke für die schnellen Antworten.

Ich habe die von PsychoMantis weiterentwickelte Version ausgecheckt, mein Verzeichnis sieht nun so aus:

Code:
root@gsm1:/usr/src/chan_datacard# ls
app.c          at_response.h    config.log     helpers.h     pdiscovery.h
app.h          autom4te.cache   configure      INSTALL       pdu.c
asteriskforum  BUGS             configure.in   LICENSE.txt   pdu.h
at_command.c   chan_datacard.c  COPYRIGHT.txt  Makefile.in   README.txt
at_command.h   chan_datacard.h  cpvt.c         manager.c     ringbuffer.c
at_parse.c     channel.c        cpvt.h         manager.h     ringbuffer.h
at_parse.h     channel.h        dc_config.c    memmem.c      single.c
at_queue.c     char_conv.c      dc_config.h    memmem.h      stamp-h.in
at_queue.h     char_conv.h      doc            mixbuffer.c   test
at_read.c      cli.c            etc            mixbuffer.h   TODO.txt
at_read.h      cli.h            export.h       mutils.h      tools
at_response.c  config.h.in      helpers.c      pdiscovery.c

Ein ./configure, schlägt jedoch wie folgt fehl:

Code:
root@gsm1:/usr/src/chan_datacard# ./configure
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."
 
@Tippfehler

ich hab jetzt alles neuinstalliert Kernel 2.6.37
Asterisk 1.6.2.16
Asterisk Addons 1.6.2.2
chan_datacard-1.0r278

und was soll ich sagen jetzt geht es ;-) auch mit asterisk-gui

einzig mit meiner Deutschen T-Mobile karte hab ich ein problem da die immer beim roaming wechselt einmal A1 dann T-Mobile A und daher fast nie verfügbar ist gibts da irgend einen AT Befehl für fix Auswahl 232-01?

edit:
so wie es scheint geht das mit AT+COPS=1,2,23201
kann man in der datacard.conf AT Befehle der karte übergeben oder muß man das anderes lösen?
 
Zuletzt bearbeitet:
Ein ./configure, schlägt jedoch wie folgt fehl:

Code:
root@gsm1:/usr/src/chan_datacard# ./configure
configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."

das hat ich auch
autoconf2.63 und automake 1.11 installieren dann gehts
 
Das neue Modul läuft jetzt soweit.

Leider finde ich in der datacard.conf keine Option, um die IMSI einzustellen. Auch weis ich (noch) nicht, wie diese bei meiner o2-Karte lautet.

Nach dem einstecken des E169-Sticks in die Maschinie gibt es unter /dev/ folgende Links:

ttyUSB0
ttyUSB1
ttyUSB2

Ich habe es nun mit allen Port-Kompinationen für audio/data versucht, und erhalte mit Ausnahme von 0/1 und 2/1 immer folgende Rückmeldung:

Code:
    -- [datacard0] Datacard has connected, initializing...
[Jan 16 13:24:52] ERROR[4590]: at_response.c:361 at_response_error: [datacard0] Getting IMSI number failed
    -- [datacard0] Error initializing Datacard
    -- [datacard0] Datacard has disconnected

Bei 0/1, 2/1:

Code:
    -- [datacard0] Datacard has connected, initializing...
[Jan 16 13:28:39] ERROR[4621]: chan_datacard.c:407 do_monitor_phone: [datacard0] timedout while waiting 'OK' in response to 'AT'
    -- [datacard0] Error initializing Datacard
    -- [datacard0] Datacard has disconnected

Hat jemand einen Tipp?
 
Ich habe die von PsychoMantis weiterentwickelte Version ausgecheckt
Das habe ich nicht weiter entwickelt, sonder ein User mit dem Pseudonym bg1 aus diesem russischen Forum. Was ich versuche ist nur die beiden Threads "zusammenzuhalten" (also neue Erkenntnisse in russisch von dort hier auf deutsch posten und neue Erkenntnisse von hier dort auf russisch posten).

Wenn du deine IMSI nicht kennst, dann gib in der datacard.conf einfach statt den Ports imei=xxxx an. Und bzgl. "Getting IMSI number failed": bist du dir sicher, dass dein Stick nicht gelockt ist (und voice aktiviert ist)? Siehe den ersten Post dieses Threads (Stichwort: voice).
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort.

Folgendes gibt DC-Unlocker aus:

Code:
DC - Unlocker 2 Client 1.00.0575

Detecting card :

selection :
manufacturer - Huawei modems
model - Huawei E169/E169G

Found modem         : E169
Model               : Huawei E169/E169G
IMEI                : 359638010027856
Serial NR.          : D42AB10832801612
Firmware            : 11.314.07.00.52
Compile date / time : Mar 13 2008 16:16:50
Dashboard version   : UTPS11.002.04.01.52_MAC11.201.02.00.52
Chipset             : Qualcomm MSM6280
NAND Flash          : samsung_k9f1208
Voice feature       : enabled
SIM Lock status     : unlocked
Wrong codes entered : 0 (unlock attempts left : 10)

datacard.conf:

Code:
[datacard0]
imei=359638010027856

Konsole:

Code:
    -- [datacard0] IMEI 359638010027856 IMSI  found on data_tty /dev/ttyUSB2 audio_tty /dev/ttyUSB1
    -- [datacard0] Trying to connect on /dev/ttyUSB2...
    -- [datacard0] Datacard has connected, initializing...
[Jan 16 15:00:53] ERROR[5045]: at_response.c:361 at_response_error: [datacard0] Getting IMSI number failed
    -- [datacard0] Error initializing Datacard
    -- [datacard0] Datacard has disconnected
 
Danke, es läuft nun! Wie sich herausstelle, war die SIM-Karte defekt.

Allerdings gibt es Probleme bei eingehenden Anrufen:

Code:
gsm1*CLI> datacard callwaiting enable datacard0
[datacard0] Call-Waiting commands queued for execute
[Jan 16 17:02:23] ERROR[769]: at_response.c:336 at_response_error: [datacard0] Command 'AT+CCWA=' failed
[Jan 16 17:02:26] NOTICE[769]: at_response.c:1056 at_response_ccwa: Call waiting is disabled on device datacard0

Hat jemand einen Tipp?
 
Ach, stimmt ja - wenn die SIM-Karte defekt ist kommt dieser Fehler auch (hatte ich auch schon mal).
Eingehende Anrufe müssten funktionieren - das hat aber so weit ich weiß nichts mit call-waiting zu tun - ist alles nur eine Sache der Einstellungen in der extensions.conf und datacard.conf

Mal eine andere Frage (an alle): Es gibt doch solche alten dual-sim-Adapter, bei denen nach jedem Neustart die jeweils andere SIM-Karte aktiv ist. Falls jemand so einen Adapter hat, bitte ausprobieren ob es auch mit chan_datacard geht und das Testergebnis hier posten.
 
Mhh,... So ganz klappt das noch nicht.

- Nachdem ersten Anruf muss ich den Stick ziehen und wieder neu einstecken, damit weitere Anrufe durchlaufen sonst kommt folgende Fehlermeldung:

Code:
[Jan 16 20:13:59] WARNING[3012]: __channel.c:340 channel_request: Request to call on device 'datacard0' which can not make call at this moment
[Jan 16 20:13:59] WARNING[3012]: app_dial.c:1750 dial_exec_full: Unable to create channel of type 'Datacard' (cause 44 - Requested channel not available)

- Eingehende Anrufe funktionieren gar nicht, es wird keine Ausgabe auf der Konsole bei Verbose-Level 5 angzeigt.

- Bei ausgehenden Anrufe höre ich zwar den Angerufenen, aber er mich nicht. Das Gespräch wird gar nicht angenommen, es wird nur Early-Audio übertragen.
 
Zuletzt bearbeitet:
Interessant:
Ich habe es gerade nochmal mit der vermeintlich "defekten" SIM-Karte probiert, natürlich wurde wieder die " Getting IMSI number failed" Meldung angezeigt.
Wenn ich jedoch vor Asterisk die PIN mit "gammu --entersecuritycode" eingebe, funktioniert es. Bis zum 1. Anruf ...

Edit:
Das ist schonmal gelöst, einfach die PIN am Handy für die Karte deaktiveren.
 
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.