05/07/2023
Forvandl din mobil til en GSM gateway
I en verden hvor mobilteknologi konstant udvikler sig, er der et stigende behov for at integrere forskellige kommunikationsplatforme. En af de mest interessante anvendelser er at omdanne din almindelige mobiltelefon til en GSM gateway. Dette giver dig mulighed for at forbinde din mobiltelefon direkte til din VoIP-telefonsystem, såsom Asterisk, hvilket åbner op for en række avancerede funktioner. Fra at modtage opkald på din mobil, når du er utilgængelig på din fastnet, til at sende og modtage SMS-beskeder direkte fra din computer, er mulighederne mange.

Denne artikel vil guide dig igennem processen med at sætte din mobiltelefon op som en GSM gateway ved hjælp af chan_mobile, et kraftfuldt add-on til Asterisk. Vi vil dykke ned i de tekniske detaljer, herunder opsætning af Bluetooth-forbindelser, konfiguration af Asterisk og håndtering af både indgående og udgående SMS-beskeder.
Hvad er en GSM Gateway?
En GSM gateway fungerer som en bro mellem mobilnetværket og et traditionelt telefonsystem. Den bruger et SIM-kort til at oprette forbindelse til mobilnetværket og konverterer derefter denne forbindelse til et SIP-trunk, som din VoIP PBX kan bruge. Antallet af SIM-kort, en gateway kan håndtere, bestemmer antallet af samtidige opkald, den kan facilitere.
Fordelene ved at bruge en GSM gateway er mange:
- Redundans: Hvis din internetforbindelse fejler, kan en GSM gateway sikre, at din telefonforbindelse forbliver aktiv via mobilnetværket.
- Tilgængelighed: Perfekt til områder uden stabil internetforbindelse, men med god mobildækning. Du kan køre hele dit telefonsystem på backup-strøm og en mobilmast.
- Fleksibilitet: Forbindelse af mobile enheder direkte til dit telefonsystem, hvilket giver mulighed for at besvare opkald på din mobil, selv når du er på farten.
Nokia Cloud Mobile Gateway er et eksempel på en løsning, der er designet til at håndtere den voksende efterspørsel efter mobil bredbånd og nye 5G-tjenester, herunder IoT og machine-type communications (MTC). Den tilbyder den nødvendige fleksibilitet, skalerbarhed og ydeevne til at understøtte et stigende antal brugere, enheder og tjenester.
Forberedelse: Bluetooth og Asterisk
For at bruge din mobiltelefon som en GSM gateway med Asterisk skal du først sikre dig, at din Asterisk-server kan kommunikere med din mobil via Bluetooth. Dette kræver installation af visse pakker og aktivering af chan_mobile add-on'et.
Installation af nødvendige pakker (Debian)
På Debian-baserede systemer kan du installere de nødvendige Bluetooth-værktøjer med følgende kommando:
apt-get install bluez-utils bluez-hcidump libbluetooth-dev Aktivering af chan_mobile
Chan_mobile er et add-on til Asterisk, som skal aktiveres, før Asterisk kompileres. Naviger til din Asterisk kildekode-mappe og brug make menuselect til at aktivere chan_mobile:
cd /usr/src/asterisk-kildekode-mappe ./configure && make menuselect Inde i menuselect, find og aktiver chan_mobile under "Add-ons".
Kompilering af Asterisk med chan_mobile
Efter at have aktiveret chan_mobile skal du genkompilere og geninstallere Asterisk:
make && make install Vigtigt: I nogle tilfælde kan det være nødvendigt at foretage en mindre ændring i chan_mobile kildekoden for at sikre genkendelse af din specifikke telefonmodel. En almindelig ændring involverer at modificere filen addons/chan_mobile.c og ændre linjen addr.rc_channel = (uint8_t) 1; til addr.rc_channel = (uint8_t) 0;.
Parring af mobiltelefon med Asterisk
Før du kan bruge din mobil som en GSM gateway, skal den parres med din Asterisk-server via Bluetooth. Denne proces kan håndteres direkte fra Asterisk CLI.
Gør din telefon synlig og scan
Sørg for, at din mobiltelefon er indstillet til at være synlig for andre Bluetooth-enheder. Derefter kan du scanne efter den fra din Asterisk-server:
hcitool scan Noter dig mobilens MAC-adresse, som vil blive vist i outputtet.

Udfør parring
For at parre enhederne skal du bruge en hjælpefunktion til at håndtere PIN-koden. Kør hjælpefunktionen i baggrunden og start parringsprocessen:
bluetooth-agent 1111 & rfcomm connect hci0 DIN_MAC_ADRESSE Erstat DIN_MAC_ADRESSE med den MAC-adresse, du noterede tidligere. Når parringen er succesfuld, skal du sørge for, at din telefon er konfigureret til automatisk at acceptere forbindelser fra din Asterisk-server i fremtiden.
Verificer forbindelsen
Du kan verificere, at parringen fungerer, ved at køre:
hcitool con Dette vil vise aktive Bluetooth-forbindelser.
Konfiguration af chan_mobile i Asterisk
Nu hvor din telefon er parret, skal Asterisk konfigureres til at bruge den. Dette involverer redigering af chan_mobile.conf og extensions.conf.
chan_mobile.conf
Opret eller rediger filen /etc/asterisk/chan_mobile.conf med følgende indhold. Du skal bruge MAC-adressen på din Bluetooth-dongle og din mobiltelefon, samt den RFCOMM-kanal, som chan_mobile identificerer.
Først skal du finde den korrekte RFCOMM-kanal. Indlæs chan_mobile modulet i Asterisk CLI:
*CLI> module load chan_mobile.so *CLI> mobile search DIN_MAC_ADRESSE Asterisk vil forsøge at finde din telefon og rapportere den RFCOMM-kanal, den bruger (f.eks. kanal 2).
Find derefter MAC-adressen på din Bluetooth-dongle:
hcitool dev Nu kan du oprette chan_mobile.conf:
[Adapter] address = DIN_DONGLE_MAC_ADRESSE id = pabx [din_telefon_model] address = DIN_MOBIL_MAC_ADRESSE port = RFCOMM_KANAL context = from-mobil adapter = pabx Erstat DIN_DONGLE_MAC_ADRESSE, DIN_MOBIL_MAC_ADRESSE og RFCOMM_KANAL med de korrekte værdier.
extensions.conf
Du skal definere regler i /etc/asterisk/extensions.conf for at håndtere opkald og SMS-beskeder via din mobilgateway.
Eksempel på indgående opkald:
[from-mobil] exten => s,1,Dial(SIP/din_udvidelse) Dette vil dirigere indgående opkald fra din mobil til en specifik SIP-udvidelse (f.eks. din_udvidelse).
Eksempel på udgående opkald:
[mine-opkald] exten => *12,1,Dial(MOBILE/din_telefon_model/MODTAGER_NUMMER) Ved at ringe *12 vil din mobil forsøge at ringe til MODTAGER_NUMMER.

Håndtering af SMS-beskeder
En af de mest nyttige funktioner ved at bruge din mobil som GSM gateway er muligheden for at sende og modtage SMS-beskeder direkte fra dit Asterisk-system.
Indgående SMS
Når din telefon er parret, kan chan_mobile sende indkommende SMS-beskeder til Asterisk. Du skal definere en 'sms'-udvidelse i den kontekst, du har angivet i chan_mobile.conf (f.eks. from-mobil).
Her er et eksempel på, hvordan du kan behandle indgående SMS-beskeder, så de sendes som e-mails:
[from-mobil] exten => sms,1,Verbose(Indkommende SMS fra ${SMSSRC} ${SMSTXT}) exten => sms,n,System(echo "To: [email protected]" > /tmp/smsmail) exten => sms,n,System(echo "Subject: SMS fra ${SMSSRC}" >> /tmp/smsmail) exten => sms,n,System(echo "${SMSTXT}" >> /tmp/smsmail) exten => sms,n,System(sendmail -t -f ${SMSSRC}@eksempel.com < /tmp/smsmail) exten => sms,n,Hangup() Bemærk: Tidligere versioner af chan_mobile havde en fejl, hvor afsenderinformationen (${SMSSRC}) kunne mangle. Hvis du oplever dette, kan det være nødvendigt at anvende en patch og genkompilere Asterisk. Nyere versioner skulle have rettet denne fejl.
Udgående SMS
At sende SMS-beskeder udgående kræver lidt mere arbejde, da du skal kunne parse e-mail-beskeder og sende dem som SMS. En Python-script kan bruges til dette formål.
Her er et overblik over et Python-script, der kan bruges til at konvertere e-mails til SMS-beskeder via Asterisk Manager Interface (AMI):
- Script-opsætning: Scriptet læser e-mail-beskeder, ekstraherer modtagertelefonnummer og beskedtekst, og bruger derefter AMI til at initiere et opkald, der sender SMS'en via din mobilgateway.
- E-mail-routing: Du skal konfigurere din mailserver (f.eks. Postfix) til at sende e-mails til din Asterisk-server, som derefter videresender dem til Python-scriptet. Dette kan involvere opsætning af MX-records eller transport-maps.
- Asterisk Manager Interface (AMI): Scriptet kræver en AMI-bruger med de nødvendige tilladelser til at logge ind og initiere opkald. Konfigurer dette i
/etc/asterisk/manager.conf. - Dialplan: Du skal have en dialplan-konfiguration i
extensions.conf, der håndterer kaldet fra AMI til din mobilgateway, f.eks. ved brug afMobileSendSMS.
Eksempel på Python script (email2sms.py):
Dette script forbinder til Asterisk AMI, sender en 'originate' kommando og inkluderer e-mail-indholdet som en variabel, der kan bruges i dialplanen til at sende SMS'en.
Postfix konfiguration for e-mail til SMS:
Du skal definere en ny transport i /etc/postfix/master.cf, der peger på dit Python-script, og derefter opdatere /etc/postfix/transport for at dirigere e-mails til denne transport.
# /etc/postfix/master.cf sms-din-telefon unix - n n - - pipe flags=FR user=asterisk argv=/usr/sbin/email2sms.py din_telefon_model # /etc/postfix/transport sms.ditdomæne.dk sms-din-telefon postfix reload Vigtige sikkerhedsovervejelser
Det er afgørende at sikre din GSM gateway mod misbrug. Konfigurer din mailserver og Asterisk-opsætning korrekt for at forhindre uautoriseret adgang og forhindre, at din gateway bruges til spam eller andre ulovlige aktiviteter. Overvåg dine logs og brug Postfix's sikkerhedsfunktioner aktivt.
Fejlfinding
Hvis du støder på problemer, er her et par tips til fejlfinding:
- Tjek logs: Overvåg
/var/log/mail.logfor e-mail-relaterede problemer og Asterisk's egne logs for opkalds- og modulfejl. - Packet trace: Brug
tcpdumptil at analysere netværkstrafik på port 5038 (AMI) for at se, om kommandoer sendes korrekt. - Direkte AMI-test: Brug
nc(netcat) til at forbinde direkte til AMI og sende kommandoer manuelt for at isolere problemer. Vær opmærksom på korrekt håndtering af whitespace i kommandoerne.
Konklusion
At omdanne din mobiltelefon til en GSM gateway for din Asterisk-server er en kraftfuld måde at udvide funktionaliteten af dit VoIP-system på. Ved at følge disse trin kan du opnå forbedret redundans, større fleksibilitet og muligheden for at håndtere både opkald og SMS-beskeder problemfrit. Husk altid at prioritere sikkerhed og test din opsætning grundigt.
Ofte Stillede Spørgsmål (FAQ)
- Hvilke mobiltelefoner understøttes af chan_mobile?
- Ikke alle telefoner er fuldt ud understøttet. Det er en god idé at tjekke voip-info.org for lister over bekræftede kompatible telefoner og Bluetooth-dongles. Sony Ericsson k530i og Samsung Galaxy S4 er nævnt som fungerende eksempler.
- Hvad er forskellen på en GSM gateway og at bruge chan_mobile?
- En dedikeret GSM gateway er en hardwareenhed, der er designet til dette formål. At bruge chan_mobile med din mobiltelefon er en softwarebaseret løsning, der giver lignende funktionalitet, men afhænger af din telefons Bluetooth-kapacitet og kompatibilitet.
- Kan jeg bruge flere SIM-kort med denne opsætning?
- Nej, denne opsætning bruger typisk én mobiltelefon ad gangen. For at håndtere flere samtidige opkald eller SIM-kort ville du have brug for en dedikeret hardware GSM gateway.
- Hvad hvis min telefon ikke understøtter SMS via Bluetooth?
- Ifølge chan_mobile wiki er det kun visse Nokia-modeller (E51, 6021, 6230i), der vides at understøtte SMS. Hvis din telefon ikke gør det, kan du muligvis ikke bruge denne specifikke funktion.
Hvis du vil læse andre artikler, der ligner Forvandl din mobil til en GSM gateway, kan du besøge kategorien Mobil.
