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

Frage

warum benutzt du nicht das mainboard mit ide anschluss?
dann hätte man doch nicht das problem mit dem flash speicher?
oder geht es mit dem board nicht!?

wollte es mir auch mal basteln.

bzw habe einen rechner auf dem asterisk 1.2 läuft wäre natürlich gut wenn es ohne das board auch geht

gruß wuptal
 
warum benutzt du nicht das mainboard mit ide anschluss?
Warum? Klar könnte man ans ALIX-Board eine Festplatte anschließen. Aber das widerspricht der Sache mit dem Strom sparen.

wäre natürlich gut wenn es ohne das board auch geht

Aber im ersten Post steht doch:
1. Was braucht man? Einen normalen Rechner welches wenigstens einen USB-Anschluss + Netzwerkkarte hat.

Es geht also mit fast jedem Rechner. Die Frage ist nun, ob es nicht mit der FBF 7270 geht. Dann könnte man sich einen Rechner komplett sparen. Viele träumen davon mit der Fritzbox über einen UMTS-Stick zu telefonieren.
 
Ja recht hast du,

aber da wie einen anlagenanschluss haben scheidet da leider die fritzbox aus...
von daher muss ich halt einen pc nehmen oder?

und wie integriere ich da am besten das gsm?!

gruß wuptal
 
Anlagenanschluß und Fritzbox geht auch, aber wie der Asterisk der Fritzbox für einen Anlagenanschluß eingestellt werden muß, hat wohl noch Niemand getestet.
 
Mit der neuen R39 kann ich nun problemlos eine SMS empfangen. Allerdings gibt es jetzt bei einem 'module unload chan_datacard' einen crash im *!
 
Mit Hilfe einiger Leute hier im Forum und viel Testen, kann ich vermelden, dass es auch mit dem Freetz+Asterisk auf der FBF 7270 funzt. Ein Gespräch von paar Minuten Dauer habe ich auch führen können. Bis zu einem freetz-addon (man/wir arbeitet/n dran) ist es zwar noch ein wenig, aber es funzt. Und die Quali ist super.
Wenn das fertig ist, braucht man für den GSM-Gateway also nur noch einen K3520, sofern man eine 7270er hat.

Nächste Woche sind Ferien - ich denke spätestens da haben wir ein funktionierenden freetz-patch für den trunk. Momentan habe ich außer Mangel an Zeit noch dazu eine eher bescheidene Testumgebung (kein DSL - die 7270er, mit der ich alles teste hängt per WDS am Nachbar´s DSL-Anschluss).

Ach ja. Das ganze würde natürlich auch ohne Freetz gehen, aber dann müsste dynamic oder sonst jemand erstmal die chan_datacard.so für ihre downloadbare/installierbare Version von Asterisk_on_FBF kompilieren+bereitstellen. Und das Problem mit den Udev-Rules ist noch gar nicht gelöst. Das blöde ist: freetz hat gar kein udev :(

Diskussionen hierzu bitte in diesem Thread.
 
Zuletzt bearbeitet:
Sehr schön, der Stick ist schon bestellt, ich bin mal gespannt auf die Anleitung.
Reicht es schon, wenn man chan_datacard.so installiert oder ist auch freetz nötig?
 
Zuletzt bearbeitet:
Habe mal ne Frage zu den udev rules weiß einer von euch warum die bei debian gehen, aber nicht bei centos?


Code:
SUBSYSTEMS=="usb", SYMLINK+="ttyUSB_%b", KERNEL=="ttyUSB[0-9*]", MODE="0666", OWNER="asterisk",GROUP="uucp"

Bei centos gibt er bei booten schon ein fehler aus das er mit dem symlink nichts anfangen kann...
Starting udev add_to_rules: unknown key 'SUBSYSTEMS'

Code:
[root@elastix ~]# ls -la /dev/ttyUSB*
crw-rw-rw- 1 asterisk uucp 188, 0  8. Feb 22:08 /dev/ttyUSB0
crw-rw-rw- 1 asterisk uucp 188, 1  8. Feb 22:08 /dev/ttyUSB1
crw-rw-rw- 1 asterisk uucp 188, 2  8. Feb 22:15 /dev/ttyUSB2
crw-rw-rw- 1 asterisk uucp 188, 3  8. Feb 22:08 /dev/ttyUSB3
crw-rw-rw- 1 asterisk uucp 188, 4  8. Feb 22:08 /dev/ttyUSB4
crw-rw-rw- 1 asterisk uucp 188, 5  8. Feb 22:23 /dev/ttyUSB5
crw-rw-rw- 1 asterisk uucp 188, 6  8. Feb 22:08 /dev/ttyUSB6
crw-rw-rw- 1 asterisk uucp 188, 7  8. Feb 22:08 /dev/ttyUSB7
crw-rw-rw- 1 asterisk uucp 188, 8  8. Feb 22:15 /dev/ttyUSB8
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB0 -> ttyUSB0
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB1 -> ttyUSB1
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB2 -> ttyUSB2
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB3 -> ttyUSB3
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB4 -> ttyUSB4
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB5 -> ttyUSB5
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB6 -> ttyUSB6
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB7 -> ttyUSB7
lrwxrwxrwx 1 root     root      7  8. Feb 22:08 /dev/ttyUSB_ttyUSB8 -> ttyUSB8
 
Zuletzt bearbeitet:
Hallo,
mein Stick reagiert leider nicht auf Anrufe und SMS, da muss irgendwo ein Fehler in den confs sein. Es klingelt beim Anrufen, aber keiner nimmt ab :(

cat /etc/asterisk/datacard.conf
Code:
[general]
interval=15                     ; seconds between trying to connect to devices.

[stick]
context=stick                   ; context for incoming calls
audio=/dev/ttyUSB1              ; tty port for audio connection
data=/dev/ttyUSB0               ; tty port for AT commands
;group=1                        ; calling group
;rxgain=10                      ; increase the incoming volume
;txgain=10                      ; increase the outgoint volume

cat /etc/asterisk/extensions.conf
Code:
...
[stick]
exten => sms,1,Verbose(Incoming SMS from ${SMSSRC} ${SMSTXT})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${CHANNEL} - ${SMSSRC}: ${SMSTXT}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()

exten => cusd,1,Verbose(Incoming CUSD: ${CUSDTXT})
exten => cusd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${CHANNEL}: ${CUSDTXT}' >> /var/log/asterisk/cusd.txt)
exten => cusd,n,Hangup()

exten => s,1,Answer()
exten => s,n,Wait(2)
exten => s,n,Playback(hello-world)
exten => s,n,Wait(2)
exten => s,n,Playback(hello-world)
exten => s,n,Hangup()

datacard show devices
Code:
ID              Group  Connected State Voice SMS   RSSI  Mode  Submode Provider Name   Manufacturer Model      Firmware          IMEI
stick           0      Yes       Free  Yes   Yes   0     0     0       BASE DE         huawei       E160       11.609.06.01.52   3547xxxxxxxxxxxxx

Hat jemand eine Idee?
 
Hi,

auf den ersten blick sieht es so aus als ob die uttUSB ports flasch sind.
Normalerweise sind diese ja
audio=/dev/ttyUSB1 ; tty port for audio connection
data=/dev/ttyUSB2 ; tty port for AT commands

und nicht
audio=/dev/ttyUSB1 ; tty port for audio connection
data=/dev/ttyUSB0 ; tty port for AT commands

...
Aber komisch das er bei dir trozdem sagt das der stick verbunden ist. Probier es aber bitte mal so wie ich es meine.
 
Das scheint sich etwas verschoben zu haben, da ich auf dem E160 auch die Netzwerkkarte freigeschaltet habe und somit noch einen USB-Port mehr habe.
Der Stick kann nur über ttyUSB0 initialisiert werden, auf den anderen Ports
erhalte ich Fehlermeldungen. Beim Voice-Port bin ich mir noch nicht sicher und wollte das dann beim Telefonieren prüfen.

Ich habe gerade gesehen, dass ich REV 37 nutze. Komme leider nicht auf makhutov.org um mir die aktuellen Sourcen zu ziehen. Ggf. kann jemand mal was aktuellen hier anhängen.
 
viel spaß ;)

kennt vielleicht jemand ein befehler oder ein tool welches regelmäßig versucht den usb stick anzupingen?
Nach einer längeren leerlaufzeit muss ich den stick rein und wieder rausziehen damit das System wieder funktioniert.

Noch mehr Probleme bekomme ich wenn ich den USB stick an einem USB hub nutzte....
 

Anhänge

  • chan_datacard.zip
    68 KB · Aufrufe: 125
Ich bin inzwischen weiter gekommen. ttyUSB3 ist mein Datenport, den konnte Asterisk anfangs nicht initialisieren, da hier der NetworkManager drauf saß. Nun werden auch eingehende Anrufe und SMS interpretiert.

Was nicht funktioniert ist Voice. Ich hab mir die übrigen Ports per Kermin angeschaut und den Voice-Port auf ttyUSB2 ausgemacht, wenn ich diesen allerdings nutze bekomme ich folgende Fehler:

Ausgehend:
Code:
    -- Executing [037123456789@default:1] Dial("SIP/2000-09ca2c38", "Datacard/stick/037123456789") in new stack
    -- Called stick/037123456789
    -- Datacard/stick-0b2f is making progress passing it to SIP/2000-09ca2c38
[Feb 12 14:22:56] ERROR[22233]: chan_datacard.c:3977 do_monitor_phone: Lost data connection to Datacard stick.
    -- Datacard stick has disconnected.

Eingehend:
Code:
    -- Executing [s@stick:1] Answer("Datacard/stick-81a6", "") in new stack
    -- Executing [s@stick:2] Wait("Datacard/stick-81a6", "2") in new stack
    -- Executing [s@stick:3] Playback("Datacard/stick-81a6", "hello-world") in new stack
    -- <Datacard/stick-81a6> Playing 'hello-world.gsm' (language 'en')
[Feb 12 15:59:59] ERROR[14201]: chan_datacard.c:3977 do_monitor_phone: Lost data connection to Datacard stick.
    -- Datacard stick has disconnected.
  == Spawn extension (stick, s, 3) exited non-zero on 'Datacard/stick-81a6'
    -- Datacard stick trying to connect on /dev/ttyUSB3...
[Feb 12 16:00:03] WARNING[14200]: chan_datacard.c:1361 opentty: Unable to open '/dev/ttyUSB3'
    -- Datacard stick trying to connect on /dev/ttyUSB3...
    -- Datacard stick has connected, initializing...
    -- Error initializing Datacard stick.
    -- Datacard stick has disconnected.

An der Firmware bzw. dem gepatchen Voice-Support scheint es nicht zu liegen, da dieser unter Windows funktioniert.
 
Also ich glaube, dass es nicht geht. Zumindest steht im Readme.txt:
This channel driver should work with the folowing UMTS cards:
* Huawei K3715
* Huawei E169 / K3520
* Huawei E1550

This channel is known NOT to work with the folowing UMTS cards:
* Huawei E160 / K3565
 
Zuletzt bearbeitet:
Das bezieht sich imho auf den Voice Support, der beim E160 deaktiviert ist. Angeschaltet arbeitet dieser jedoch identisch zum E169. Ich würde gerne die Debugausgabe sehen, jedoch bringt ein "core set debug 9" keine Änderungen.

Edit:
Hab das ganze mal an einem anderen Rechner (identisches System) mit USB2 versucht und dort ohne Probleme hinbekommen.
 
Zuletzt bearbeitet:
Hi!

@DasWiesel:
Kannst du asuführen, wie du die Zuordnung der Ports (audio, data) herausgefunden hast? Das wäre ev. für andere auch hilfreich und ein Ansatz für die "Fehler"analyse.

Gut zu wissen, dass es auch E160 gibt, bei denen Voice funktioniert. Alleine die Anziege im dc-unlocker, dass voice aktiviert ist reicht nämlich nicht ....

schufti
 
Also ich hab nach den DC-Unlocker 4 Ports.
Unter Windows heissen diese dann Modem, Application, PC UI und Netwerk.

Wenn man an alle Port ein AT schickt. melden nur 2 ein OK zurück.
Das ist der Modem und der PC UI Port. Eingehende Anrufe RING werden jedoch nur auf einem dieser Ports (imho der PC UI) gemeldet. Das wäre dann der Datenport. Auf diesen dann ein AT+DDSETEX=2 (Voiceumleitung auf Application-Port) und ein ATD012345; (Anruf, 012345 ersetzen und das ; nicht vergessen - initiiert einen Voicecall). Nun rattern auf einen der beiden verbliebenden Ports das Audio im GSM Codec durch, sieht ungefähr so aus:
Code:
<ETX><BEL><EOT>ù<ETX>)<EOT>I<EOT>�<EOT>‘<EOT>…<EOT>7<EOT>#<EOT>Î<ETX>Ì<ETX>…<ETX>´<ETX>A<ETX>§<ETX>q<ETX>ì<ETX>K<ETX>à<ETX><FS><ETX>«<EOT>c<SOH>sñqï*ð<BS>î"ûC<EOT>ø<SOH>0<ETX>`<STX>ø<STX>¾<STX>Ø<STX>›<STX>®<STX>ˆ<STX>§<STX>‹<STX>´<STX>q<STX>Y<STX>H<STX>B<STX>4<STX>\<STX>x<STX>˜<STX>¤<STX>Â<STX>¹<STX>È<STX>Å<STX>³<STX>ª<STX>v<STX>·<STX>ô<SOH>4<ETX><VT>öÀì;ð½ì[óí<SOH>‹<SOH>Ê<SOH>ö<SOH>ä<SOH>-<STX><ENQ><STX>L<STX>.<STX>E<STX><FS><STX>C<STX>#<STX>+<STX>#<STX>8<STX>F<STX>d<STX>T<STX>‡<STX>†<STX>½<STX>–<STX>Õ<STX>¾<STX><SI><ETX>¬<STX><US><ETX>R<STX>,<ETX>Â<SOH>ü<ETX>Êü$î—ï ï<HT>ï&þÃ<ETX>ó<SOH><<ETX>f<STX><STX><ETX>™<STX>ë<STX>«<STX>Ú<STX>¼<STX>¯<STX>„<STX>¸<STX>¡<STX>Ç<STX>Ë<STX><HT><ETX><STX><ETX>2<ETX>0<ETX>A<ETX><SUB><ETX>F<ETX><BS><ETX>4<ETX>ò<STX>C<ETX>é<STX>9<ETX>î<STX>T<ETX>·<STX>YóBî<ñ¨í4øß<ETX><BS><STX>Þ<STX>U<STX>¶<STX>‡<STX>™<STX>¬<STX>Ù<STX><EOT><ETX>'<ETX>5<ETX>:<ETX>9<ETX>@<ETX>7<ETX><RS><ETX>ù<STX>æ<STX><ENQ><ETX>þ<STX>Ú<STX>Ð<STX>Ù<STX>Ù<STX><SUB><ETX><BEL><ETX><ETX>9<ETX>ù<ETX>ð<STX><FF><ENQ>çùøíÜðMîDñ*<NUL>¯<STX>ç<SOH>™<STX>"<STX>¥<STX>@<STX>Ê<STX>¸<STX>û<STX>û<STX>,<ETX>ô<STX>á<STX>¨<STX>»<STX>¡<STX>¦<STX>ˆ<STX>¥<STX>™<STX>Î<STX>ª<STX>Ü<STX>¸<STX><DC3><ETX>´<STX>%<ETX>¼<STX>H<ETX>,<STX>¿<ETX>wÿ©î\ílî#ì±úH<ETX>ÿ<NUL>c<STX>¾<SOH>q<STX>ú<SOH>T<STX>ý<SOH><<STX><RS><STX>8<STX> [len=455]
<STX><NUL><STX>ð<SOH><DC1><STX><US><STX>7<STX>9<STX>O<STX>R<STX>‡<STX>´<STX>²<STX>”<STX>�<STX>ˆ<STX>¦<STX>v<STX>„<STX>˜<STX>F<STX>o<ETX>Éô"ì¦ïêëÐóÂ<STX><STX><STX>S<STX>c<STX>{<STX>�<STX>n<STX>¦<STX>w<STX>ª<STX>³<STX>Ð<STX>Ö<STX>ÿ<STX><HT><ETX>5<ETX>!<ETX>D<ETX>F<ETX>U<ETX>W<ETX>¤<ETX>p<ETX>¢<ETX>_<ETX>�<ETX>Z<ETX>Ì<ETX>"<ETX><NAK><EOT>Æ<STX><ESC><ENQ>6ý<ETX>ïãðÂï*ð‰ÿ<EOT><EOT>P<STX>S<ETX>˜<STX>S<ETX>ä<STX>_<ETX><DC4><ETX>G<ETX>'<ETX>h<ETX>I<ETX>Y<ETX>M<ETX>Z<ETX>a<ETX>u<ETX>l<ETX>m<ETX>R<ETX>O<ETX>a<ETX>d<ETX>T<ETX>P<ETX>Z<ETX>h<ETX>Z<ETX>K<ETX>G<ETX>E<ETX>[<ETX>J<ETX>H<ETX>Q<ETX>T<ETX>P<ETX>K<ETX>I<ETX>.<ETX>:<ETX>#<ETX>4<ETX>E<ETX>P<ETX>I<ETX>1<ETX><GS><ETX><DLE><ETX><SO><ETX><RS><ETX>!<ETX><DC2><ETX>8<ETX>'<ETX>E<ETX>&<ETX> <ETX>#<ETX><US><ETX> <ETX><SO><ETX><CAN><ETX><STX><ETX>H<ETX>á<STX>k<ETX>X<STX>^<EOT>›ø�íÉð<BEL>î<ACK>òi<SOH>Ì<STX>"<STX>—<STX>+<STX>¢<STX>X<STX>–<STX>X<STX>–<STX>m<STX>™<STX>‚<STX>¬<STX>¾<STX>²<STX>¥<STX>Ì<STX>Â<STX>í<STX>Ñ<STX>ô<STX>Ê<STX>ò<STX>«<STX>ã<STX>u<STX>ê<STX>Q<STX>2<ETX>
Das ist dann der Voice-Port.
 
ping ist da so nicht möglich.
es handelt sich ja um kein netzwerkprotokoll...

wenn das ding nicht mehr ansprechbar ist, vermute ich mal dass entweder auf stick seite oder softwaremäßig nen buffer voll läuft und nicht mehr richtig geleert wird.
meine erfahrungen mit der seriellen schnittstelle: es sind dann meistens programmierfehler...
 
Hi!

@DasWiesel: danke, das ist doch schon mal eine Aussage.
Somit wäre auch erklärt, warum es bei mir nicht läuft. Trotz Anzeige von aktivierter Voice sind nämlich nur DREI ttyUSBx Ports vorhanden.

gibts da draußen jemand, der auch nur 3 Ports hat und bei dem es läuft?

gruß,
schufti
 
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.