Having an own VoIP solution with FreePBX wasn't that much exciting for me, rather connecting it to a cellular network is much more interesting! Looking over and over the web you mostly find expensive solutions or solutions where much knowhow is needed to configure it properly. Also there are some cheaper (~100eur) products where there is too less description to be sure of it, sure its cheap in comparison but would you go ahead and buy another one if that one doesn't fit your needs? And then its a question about who you could talk to, to share experience and solve problems if there is no large number of users. In the end i gave up that idea and put it back in the dusty shelf of collected ideas. But that didn't last long this way...
While looking for a cause of some asterisk error, i found people writing about using 3G USB dongles (modems for mobile internet access) to connect their asterisk with their local cellular providers. Intersting story, there are gsm modules for asterisk and freeswitch available. Only thing is, actualy only huawei dongles are supported but there are cheap models widely available.
From what i have read here and here, model E1550 is widely used and supported, it works fine as also model E180.

You might want to update the firmware.
usb-modeswitch is needed! -> aptitude install usb-modeswitch
http://www.draisberghof.de/usb_modeswitch/
After plugging it in again, it should show up in lsusb like this:
Bus 001 Device 012: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
or like this:
Bus 002 Device 023: ID 12d1:140c Huawei Technologies Co., Ltd.
Then you should see three ttyUSB devices:
root@voip:~# ls -al /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Sep 24 23:52 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Sep 24 22:51 /dev/ttyUSB1
crw-rw---T 1 root dialout 188, 2 Sep 24 23:56 /dev/ttyUSB2
Where the last one '/dev/ttyUSB2' is the serial device to talk to the modem via screen or minicom or putty or hyperterminal or ..
AT-Commands:
ATI - get relevant information from modem
ATZ - reset modem configuration
AT^CARDLOCK="<code>" - send unlock code
AT^CVOICE=? - Check status
AT^CVOICE=0 - Enable Voice
AT^CVOICE=1 - Disable Voice
AT^SYSCFG=mode, order, band, roaming, domain - System Config
Mode:
2 Automatic search
13 2G ONLY
14 3G ONLY
16 No change
Order:
0 Automatic search
1 2G first, then 3G
2 3G first, then 2G
3 No change
Band:
80 GSM DCS systems
100 Extended GSM 900
200 Primary GSM 900
200000 GSM PCS
400000 WCDMA IMT 2000
3FFFFFFF Any band
40000000 No change of band
Roaming:
0 Not supported
1 Roaming is supported
2 No change
Domain:
0 CS_ONLY
1 PS_ONLY
2 CS_PS
3 ANY
4 No change
Examples:
AT^SYSCFG=13,0,3FFFFFFF,0,3 - modem 2G only, automatic search any band, no roaming
AT^SYSCFG=2,0,3FFFFFFF,2,4 - Any
AT^SYSCFG=13,1,3FFFFFFF,2,4 - 2G only
AT^SYSCFG=14,2,3FFFFFFF,2,4 - 3G only
AT^SYSCFG=2,1,3FFFFFFF,2,4 - 2G preferred
AT^SYSCFG=2,2,3FFFFFFF,2,4 - 3G preferred
AT^U2DIAG=0 - modem mode only
AT^U2DIAG=1 - modem mode + CD-ROM
AT^U2DIAG=255 - modem mode + CD-ROM + Card Reader
AT^U2DIAG=256 - modem mode + Card Reader
AT+CCWA=0,0,1 - disable call-waiting
AT+CFUN=1,1 - reboot modem
AT+CGSN - get IMEI
AT+CIMI - get IMSI
AT+CLAC - feature list (check if ^CVOICE is listed)
AT+CLCK="SC",0,"<pin>" - disable PIN verification
save own number to sim:
AT+CPBS="ON"
AT+CPBW=1,"+4369911786693",145
Asterisk users need chan_dongle which is available on google code.
Freeswitch users need mod_gsmopen.
Asterisk 1.8.13.1~dfsg-3 with chan_dongle 1.1.r14
$ wget https://asterisk-chan-dongle.googlecode.com/files/chan_dongle-1.1.r14.tgz
$ tar xfz chan_dongle-1.1.r14.tgz
$ cd chan_dongle-1.1.r14
$ ./configure; make
$ sudo make install
$ sudo asterisk -r
asterisk*CLI> module load chan_dongle
asterisk*CLI> dongle show devices
ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number
CHiLpublic 0 Free 12 0 0 one E1550 11.608.13.00.47 35************* 23205********** +4369911786693
asterisk*CLI> quit
[article work in progress]
$ sudo aptitude install git automake
$ git clone https://github.com/jstasiak/asterisk-chan-dongle.git
$ cd asterisk-chan-dongle/
$ aclocal # (ignore warnings)
$ autoconf # (ignore warnings)
$ automake -a
$ ./configure
$ make
Some time ago i switched from orange to hutchison but kept the old orange sim as prepaid card so people could reach me without the need of telling them my new number. Now most of you will think thats good but carrying two mobiles (both sim cards) with you isn't practical either. Some people instantly think about dual-sim adapters to use both cards in one mobile (parallel simultaneous function is not possible) or about "real dual-sim capable" mobiles which face the same problem as the cheaper gsm-voip gateways, described above. And i love my HTC DesireZ so acually i don't want to get a new mobile. So i needed a solution independent of the used mobile i thought and came up with the idea, there are cellular providers in some countries (like Hutchison3G in Austria actually) who offer limited toll-free telephony in their own network. Why not combine that with our new gsm2voip gateway to get our calls forwarded, for free?
[edit how to]
If you use a SIP client on your mobile, you could even forward it there before forwarding it via cellular. Additionaly i wrote a quick bash script to get the caller name from your google contacts.
problems:
https://www.vr.org/kb/5132/Force-exim-to-send-email-from-a-particular-IP.html
http://forums.asterisk.org/viewtopic.php?f=1&t=80482
http://www.modemunlock.com/huawei-e1550-unlock-3g-usb-modem.html
http://wiki.e1550.mobi/
http://code.google.com/p/asterisk-chan-dongle/
https://github.com/jstasiak/asterisk-chan-dongle
http://codestudioblog.wordpress.com/tag/e1750/
Eine eigene VoIP-Lösung mit FreePBX zu haben war für mich nicht so aufregend, es eher mit einem Mobilfunknetz zu verbinden ist viel interessanter! Wenn man immer wieder im Web sucht, findet man meist teure Lösungen oder Lösungen, bei denen viel Know-how nötig ist, um sie richtig zu konfigurieren. Es gibt auch einige günstigere (~100 Euro) Produkte, bei denen zu wenig Beschreibung vorhanden ist, um sicher zu sein, sicher ist es günstig im Vergleich, aber würdest du weitermachen und noch eines kaufen, wenn das eine nicht deinen Bedürfnissen entspricht? Und dann ist es eine Frage, mit wem du sprechen könntest, um Erfahrungen zu teilen und Probleme zu lösen, wenn es keine große Anzahl von Benutzern gibt. Am Ende gab ich diese Idee auf und legte sie zurück ins staubige Regal der gesammelten Ideen. Aber das hielt nicht lange so an...
Während ich nach der Ursache eines Asterisk-Fehlers suchte, fand ich Leute, die darüber schrieben, 3G USB-Dongles (Modems für mobilen Internetzugang) zu verwenden, um ihr Asterisk mit ihren lokalen Mobilfunkanbietern zu verbinden. Interessante Geschichte, es gibt GSM-Module für Asterisk und Freeswitch verfügbar. Das einzige ist, tatsächlich werden nur Huawei-Dongles unterstützt, aber es gibt günstige Modelle, die weit verbreitet sind.
Aus dem was ich hier gelesen habe und hier, wird Modell E1550 weit verbreitet verwendet und unterstützt, es funktioniert gut wie auch Modell E180.

Du möchtest vielleicht die Firmware aktualisieren.
usb-modeswitch wird benötigt! -> aptitude install usb-modeswitch
http://www.draisberghof.de/usb_modeswitch/
Nach dem erneuten Einstecken sollte es in lsusb so angezeigt werden:
Bus 001 Device 012: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
oder so:
Bus 002 Device 023: ID 12d1:140c Huawei Technologies Co., Ltd.
Dann solltest du drei ttyUSB-Geräte sehen:
root@voip:~# ls -al /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Sep 24 23:52 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Sep 24 22:51 /dev/ttyUSB1
crw-rw---T 1 root dialout 188, 2 Sep 24 23:56 /dev/ttyUSB2
Wobei das letzte '/dev/ttyUSB2' das serielle Gerät ist, um mit dem Modem über screen oder minicom oder putty oder hyperterminal oder .. zu sprechen
AT-Befehle:
ATI - relevante Informationen vom Modem abrufen
ATZ - Modem-Konfiguration zurücksetzen
AT^CARDLOCK="<code>" - Entsperr-Code senden
AT^CVOICE=? - Status prüfen
AT^CVOICE=0 - Sprache aktivieren
AT^CVOICE=1 - Sprache deaktivieren
AT^SYSCFG=mode, order, band, roaming, domain - System-Konfiguration
Modus:
2 Automatische Suche
13 Nur 2G
14 Nur 3G
16 Keine Änderung
Reihenfolge:
0 Automatische Suche
1 Erst 2G, dann 3G
2 Erst 3G, dann 2G
3 Keine Änderung
Band:
80 GSM DCS-Systeme
100 Erweitertes GSM 900
200 Primäres GSM 900
200000 GSM PCS
400000 WCDMA IMT 2000
3FFFFFFF Jedes Band
40000000 Keine Änderung des Bands
Roaming:
0 Nicht unterstützt
1 Roaming wird unterstützt
2 Keine Änderung
Domain:
0 CS_ONLY
1 PS_ONLY
2 CS_PS
3 ANY
4 Keine Änderung
Asterisk-Benutzer benötigen chan_dongle, welches bei Google Code verfügbar ist.
Freeswitch-Benutzer benötigen mod_gsmopen.
Vor einiger Zeit wechselte ich von Orange zu Hutchison, behielt aber die alte Orange-SIM als Prepaid-Karte, damit Leute mich erreichen können, ohne ihnen meine neue Nummer mitteilen zu müssen. Nun werden die meisten von euch denken, das ist gut, aber zwei Handys (beide SIM-Karten) mit sich zu tragen ist auch nicht praktisch. Manche denken sofort an Dual-SIM-Adapter, um beide Karten in einem Handy zu verwenden (parallele simultane Funktion ist nicht möglich) oder an "echte dual-SIM-fähige" Handys, die das gleiche Problem haben wie die günstigeren GSM-VoIP-Gateways, die oben beschrieben wurden. Und ich liebe mein HTC DesireZ, also will ich eigentlich kein neues Handy bekommen.
Posiadanie własnego rozwiązania VoIP z FreePBX nie było dla mnie tak ekscytujące, raczej połączenie go z siecią komórkową jest znacznie bardziej interesujące! Przeszukując internet w kółko, najczęściej znajdziesz drogie rozwiązania lub rozwiązania, gdzie potrzeba dużo wiedzy, aby je prawidłowo skonfigurować. Są też niektóre tańsze (~100 euro) produkty, gdzie jest za mało opisu, aby być tego pewnym, oczywiście to tanie w porównaniu, ale czy poszedłbyś dalej i kupił kolejny, gdyby ten nie odpowiadał twoim potrzebom? I wtedy to kwestia z kim mógłbyś porozmawiać, żeby podzielić się doświadczeniem i rozwiązać problemy, jeśli nie ma dużej liczby użytkowników. W końcu porzuciłem ten pomysł i odłożyłem go z powrotem na zakurzoną półkę zebranych pomysłów. Ale to nie trwało długo w ten sposób...
Szukając przyczyny jakiegoś błędu asterisk, znalazłem ludzi piszących o używaniu dongles USB 3G (modemów do mobilnego dostępu do internetu) do połączenia ich asterisk z lokalnymi dostawcami komórkowymi. Ciekawa historia, dostępne są moduły GSM dla asterisk i freeswitch. Jedyną rzeczą jest, że właściwie tylko dongle huawei są obsługiwane, ale są tanie modele szeroko dostępne.
Z tego co przeczytałem tutaj i tutaj, model E1550 jest szeroko używany i obsługiwany, działa dobrze jak również model E180.

Możesz chcieć zaktualizować firmware.
usb-modeswitch jest potrzebny! -> aptitude install usb-modeswitch
http://www.draisberghof.de/usb_modeswitch/
Po ponownym podłączeniu powinno pojawić się w lsusb tak:
Bus 001 Device 012: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
lub tak:
Bus 002 Device 023: ID 12d1:140c Huawei Technologies Co., Ltd.
Wtedy powinieneś zobaczyć trzy urządzenia ttyUSB:
root@voip:~# ls -al /dev/ttyUSB*
crw-rw---T 1 root dialout 188, 0 Sep 24 23:52 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 Sep 24 22:51 /dev/ttyUSB1
crw-rw---T 1 root dialout 188, 2 Sep 24 23:56 /dev/ttyUSB2
Gdzie ostatnie '/dev/ttyUSB2' to urządzenie szeregowe do komunikacji z modemem przez screen lub minicom lub putty lub hyperterminal lub ..
Komendy AT:
ATI - uzyskaj istotne informacje z modemu
ATZ - zresetuj konfigurację modemu
AT^CARDLOCK="<code>" - wyślij kod odblokowania
AT^CVOICE=? - sprawdź status
AT^CVOICE=0 - włącz głos
AT^CVOICE=1 - wyłącz głos
Użytkownicy Asterisk potrzebują chan_dongle, które jest dostępne w Google Code.
Użytkownicy Freeswitch potrzebują mod_gsmopen.