Wie man aufhört, für Roaming zu bezahlen, oder mit einer Nummer auf der ganzen Welt

    Die Idee zu diesem Material kam mir letztes Jahr zu der Zeit, als ich, nachdem ich einen großen Kreis um unsere große Reichweite gemacht hatte, am Ende des Monats Rechnungen für das Roaming erhielt. Trotz Zusicherungen von Mobilfunkunternehmen hinsichtlich des freien Roamings innerhalb des Landes können SMS- oder Internetverkehr separat berechnet werden. Die im Tarif enthaltenen Minuten gelten nur in der "Heimatregion". Nun, da die Pläne dieses Jahres nicht nur in seiner Heimat zu reisen planen, begann ich meine Idee zu verwirklichen - meine eigene stationäre Telefonanlage zu Hause, die mich überall auf der Welt kontaktieren kann.
    Unterwegs löste ich das Problem der telefonischen Kommunikation zwischen Wohnungen und Verwandtenhäusern, da die Zeit der internen Verhandlungen nicht nur für Stunden, sondern für Dutzende Stunden berechnet wurde.
    Ein kleiner Spoiler: Als Ergebnis wurde Asterisk auf dem NAS und dem Router installiert



    Ich kam zu dem Schluss, dass Sie Ihre eigene Telefonie brauchen. Es ist möglich, einen der SIP-Telefoniedienste auszuwählen, die auf dem Markt in großer Anzahl vorhanden sind. Ich hatte jedoch eine Liste von Anforderungen, die keiner der Operatoren erfüllte:

    • Unabhängige Wahl der internen Nummern
    • Zugang zu externen Kommunikationswegen mit der Möglichkeit von Anrufen auf Festnetz- und Mobilnummern
    • Möglichkeit, einen Betreiber zu wählen, der IP-Telefonie bereitstellt
    • Die Fähigkeit, die SIM-Karte des ausgewählten Betreibers mit dem üblichen "Telefon" -Tarif zu verwenden
    • Sprachmenü, um eingehende Anrufe an den gewünschten Teilnehmer weiterzuleiten
    • Minimale oder keine Kosten für Wartung / Wartung der Sprechanlage

    Viele Betreiber bieten eine virtuelle Telefonanlage und sogar ein Sprachmenü. Dieser Service ist jedoch bereits bezahlt. Bei einigen Betreibern können Sie innerhalb Ihres Netzwerks kostenlos telefonieren, es besteht jedoch das Problem, dass lange Nummern gewählt werden. Und sicherlich erlaubt Ihnen niemand, die SIM-Karte des ausgewählten Betreibers mit den minimalen Kosten für Anrufe oder vorausbezahlte Minuten zu verwenden. Also entschied ich mich, selbst mein Telekommunikationsbetreiber zu werden.

    Schritt eins Plattformauswahl: Virtualisierung

    Da ich mich bereits mit IP-Telefonie befasst habe, habe ich mich entschlossen, meine Telefonanlage auf Asterisk umzustellen - es ist kostenlos, es gibt viele Foren, Handbücher und ... warum nicht? Ich bekam ein paar SIP-fähige Mobilteile und begann über die Plattform für Asterisk-Arbeit nachzudenken. Um in die Cloud oder zu einem virtuellen Server zu gehen, würde dies bedeuten, dass Sie früher oder später bezahlen müssen, aber dann fällt die Idee, Telefonie kostenlos zu machen. Daher entschied ich mich für die Virtualisierungsfunktion auf meinem NAS QNAP TS-451. Ich habe bereits über diesen Netzlaufwerkschip geschrieben, so dass Sie mehr lesen können. Die Leistung des Systems mit dem Kopf reichte nicht nur für den Asterisk selbst, sondern auch für das Webinterface. Daher entschied ich mich für die Elastix-Distribution. Ich muss sagen, dass das neueste Distributionskit Nr. 5 auf der offiziellen Elastix.org-Website bereits kostenlos ist. Daher empfehle ich, ein Distributionskit für Version 4 für Torrents zu suchen.

    Das Erstellen von Benutzern in Elastix wird oft beschrieben, der Rest wird jedoch nicht so detailliert im Netzwerk behandelt. Ich beschreibe daher die Verbindung des SIP-Providers "Multifon" von Megaphone und die Erstellung eines Sprachmenüs mit Umleitung.

    Wir erstellen einen Trunk mit den Parametern Ihres Kontos in Multiphone. Sie können diese Option mit einer beliebigen Megafon-Betreibernummer verbinden. Die Abhebung von Geldern ist unabhängig vom gewählten Tarifplan und wird für jede Minute eines ausgehenden Anrufs vorgenommen. Posteingang frei Zwei Konversationszeilen werden gleichzeitig unterstützt. Außerdem können Sie konfigurieren, dass eingehende Anrufe nur an das Telefon, Telefon + Multi-Telefon und nur an das Multi-Telefon gehen.


    Texteinstellungen für diejenigen, die sich einen Multifon-Stamm hinzufügen möchten:

    Trunk Multiphone
    Peer-Details:

    Benutzername = Telefon_Nummer
    Typ = Peer-
    Geheimnis = Kennwort
    Port = 5060
    nat = Ja
    insecure = Port, einladen
    host = sbc.megafon.ru
    fromuser =
    telefonnummer fromdomain = multifon.ru
    dtmfmode = inband
    context = from-trunk

    Registerzeichenfolge:
    Telefonnummer : password@multifon.ru/telefonnummer

    Wir haben uns also mit dem SIP-Provider verbunden und können nun den eingehenden Anruf an eine beliebige interne Nummer weiterleiten. Was tun, wenn der Anrufer die zu wählende Nebenstellennummer auswählen soll? Sie können ein Sprachmenü mit der Wahl des Ziels erstellen. Ich werde eine schrittweise Beschreibung machen.

    Erstellen Sie ein Sprachmenü in Elastix

    Gehe zu Systemaufzeichnungen. Hier haben Sie die Parameter für die Sprachaufnahme bereits geschrieben: PCM, 16 Bit, 8000 Hz. Dies kann in einem Standardaufzeichnungsprogramm und in Programmen von Drittanbietern wie SoundForge erfolgen.



    Nachdem die Sprachgruß erstellt und auf den Server hochgeladen wurde, wechseln Sie zum IVR-Menüelement. Erstellen Sie ein neues Sprachmenü und wählen Sie die Begrüßungsdatei sowie die Antwort auf das Drücken der Tasten aus. In meinem Fall wählte ich, dass durch Drücken der Nummer "3" die Nummer "101" usw. aufgerufen wird. Wenn eine fehlerhafte Taste ausgewählt wird oder der Anrufer keine Taste drückt, geht die Umleitung zur internen Nummer 304.



    Nun müssen wir den eingehenden Anruf in unser Sprachmenü bringen. Gehen Sie zum Punkt Eingehende Routen und legen Sie eine neue Regel an. Wählen Sie im letzten Abschnitt, "Set Destination", die IVR und die zuvor erstellte Warteschlange aus, die ich "Dozvon" nannte.


    Wir speichern und verwenden. Das alles funktionierte ungefähr einen Monat lang ohne Fehler, aber es schien mir ein wenig. Immerhin hat nicht jedes Heim ein NAS mit einer virtuellen Maschine oder einen Server, auf dem Sie Asterisk abholen können, aber fast jedes Haus hat einen Router!

    Mögliche Probleme und deren Lösung mit einem virtuellen Server

    Beim Erstellen eines Servers und der Portweiterleitung stellte sich heraus, dass die Arbeit von zwei virtuellen Maschinen und einem physischen Server an einem Netzwerkport nicht sehr effektiv ist. Die einfachste Lösung bestand darin, das Virtualisierungssystem zu nutzen und eine separate Netzwerkschnittstelle für die virtuelle Maschine auszuwählen. Dies erwies sich als sehr einfach mit den integrierten QNAP-Tools. Danach musste die virtuelle NAS + 1-Maschine selbst an der ersten Netzwerkschnittstelle und an der zweiten virtuellen Maschine - an der zweiten Netzwerkschnittstelle - arbeiten.



    Schritt zwei: Asterisk auf den Router heben

    Es ist also passiert, dass ich den Yota-Provider benutze, aber ich benutze nicht ihre ursprünglichen Router. Vor langer Zeit hatte ich einen tollen Zyxel-Router - Keenetic LTE. Ich hatte es vor ein paar Jahren bereits unter den schwierigsten Bedingungen des Outbacks erlebt und war vollkommen zufrieden - auf Habré gibt es dazu ein separates Material .

    In der neuesten NDMS-Firmware, genauer gesagt ab Firmware 2.08.B, wurde die Unterstützung für OPKG-Pakete für die Zyxel Keenetic-Routerfamilie übernommen. Dies bedeutet, dass Sie die unterschiedlichste Software einsetzen können. (Es gibt eine Menge Software, die für Zyxel-Router angepasst ist.) Warum also nicht Asterisk dort einsetzen? Es ist wichtig, dass der Router über mindestens 128 MB RAM verfügt. Gesagt - fertig!
    Noch angenehmer hat Zyxel sogar ein Handbuch für den Einsatz von Asterisk für ihre Router erstellt. Um die Telefonie auf einem Router bereitzustellen, genügt es, den Anweisungen Schritt für Schritt zu folgen. Ich erzähle Ihnen, wie ich dieses System verbessert und das System auf einen anderen virtuellen Server gebracht habe.

    Das erste, auf das ich gestoßen bin, war ein unklares Problem beim Starten des Routers nach einem Neustart der Software. Es stellte sich heraus, dass mein an den USB-Port des Routers angeschlossenes Flash-Laufwerk bis zu 0,16 A Strom verbraucht. Dies stellte sich als ausreichend heraus, damit das LTE-Modem im Zyxel Keenetic LTE-Router nicht regelmäßig startet. Alles wurde durch Anschließen des Flash-Laufwerks über einen externen USB-Hub mit zusätzlicher Stromversorgung behoben. Hat vielfach getestet und viele Leute D-Link DUB-H7. Damit waren die Probleme beendet. Ich glaube, dass Router mit zwei USB-Anschlüssen ohne Krücken funktionieren.

    Fahren Sie nun mit den Einstellungen von Asterisk fort. Hier müssen Sie alle Griffe bearbeiten. Es gibt zwei Möglichkeiten: Gehen Sie über SSH und bearbeiten Sie dort (MC ist vorhanden) oder gehen Sie über die Kugel zur IP-Adresse des Routers und bearbeiten Sie die Dateien mit Notepad ++. Ich war mit beiden Optionen zufrieden und ging zur Sache. Ich habe meine Benutzer hinzugefügt und den Multifon-Trunk in der Datei sip.conf registriert. Es bleibt nur noch eine Warteschlange. Ich habe die Sprachgrußdatei in \\ 192.168.1.1 \ Asterisk-blue \ var \ lib \ asterisk \ sounds \ ru gespeichert und die folgenden Änderungen in der Datei extensions.conf vorgenommen.

    Sprachmenü in Asterisk erstellen
    [external-outgoing]
    ;------------------ Multifon — exten => _8..........,1,NoOp()
    exten => _8..........,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
    exten => _8..........,n,Set(__SIP_CODEC_INBOUND=ulaw)
    exten => _8..........,n,Answer()
    exten => _8..........,n,Wait(2)
    exten => _8..........,n,Playback(/opt/var/lib/asterisk/sounds/itsp_names/multifon)
    exten => _8..........,n,Dial(SIP/Multifon/7${EXTEN:1},,T)
    exten => _8..........,n,Hangup()

    [multifon-incoming];===== Incoming call from Multifon =====
    exten => _........,1,NoOp()
    exten => _........,n,Wait(4)
    exten => _........,n,Answer()
    exten => _........,n(play),NoOp()
    exten => _........,n,Wait(1)
    exten => _........,n,Playback(hello)
    exten => _........,n,Wait(0,5)
    exten => _........,n,Playback(priv)
    exten => _........,n,Set(TIMEOUT(digit)=1)
    exten => _........,n,NoOp()
    exten => _........,n,WaitExten(7)

    exten => _1,1,NoOp()
    exten => _1,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
    exten => _1,n,Set(__SIP_CODEC_INBOUND=ulaw)
    exten => _1,n,Set(CALLERID(num)=8${CALLERID(num):1})
    exten => _1,n(dial_ext),Dial(SIP/101,60,mt)

    exten => _2,1,NoOp()
    exten => _2,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
    exten => _2,n,Set(__SIP_CODEC_INBOUND=ulaw)
    exten => _2,n,Set(CALLERID(num)=8${CALLERID(num):1})
    exten => _2,n(dial_ext),Dial(SIP/302,60,mt)

    exten => _3,1,NoOp()
    exten => _3,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
    exten => _3,n,Set(__SIP_CODEC_INBOUND=ulaw)
    exten => _3,n,Set(CALLERID(num)=8${CALLERID(num):1})
    exten => _3,n(dial_ext),Dial(SIP/304,60,mt)

    Also hat alles funktioniert. Abgehende Anrufe gehen über das Multiphone, interne Anrufe zwischen Teilnehmern sind kostenlos und eingehende Anrufe über das Multiphone können an jeden der drei Teilnehmer gerichtet werden. Aber es kam mir ein wenig vor. Und es ist schade, dass nur Megaphone eine alternative SIP-Verbindung für Mobilfunknetze bietet. Was ist, wenn Sie einen anderen Mobilfunkanbieter verwenden möchten? Es gibt eine Lösung!

    Schritt drei: Wir binden jeden Mobilfunkbetreiber an unseren Asterisk

    Der letzte Schritt bestand darin, jeden Mobilfunkbetreiber an unseren Telefonieserver anzuschließen. Die logischste Lösung wäre, ein GSM-SIP-Gateway anzuschließen, das am Ausgang einen SIP-Trunk ergibt. Aber die Kosten solcher Geräte für eine Sim-Karte beginnen bei neuntausend Rubel, also wurde beschlossen, den anderen Weg zu gehen. Wir finden ein Modem mit Sprachunterstützung. In unserem Fall war es das Huawei E3131. Das Entsperren und Aktivieren der Sprachfunktionen wird im Netzwerk wiederholt angezeigt, sodass ich nicht davon abgelenkt werde. Wir stecken die benötigte SIM-Karte in den Port des USB-Hubs und deaktivieren zunächst den Betrieb als 3G-Modem im Menü.



    Danach beginnen wir mit der Konfiguration der Asterisk-Dateien. Installieren Sie zunächst das Dongle-Paket mit einem Befehl in der opkg install asterisk11-chan-dongle- Konsole. Öffnen Sie nach der Installation die Datei dongle.conf und bearbeiten Sie sie, um Folgendes zu erhalten:

    Dongle.conf-Arbeitsdatei
    [dongle]
    interval=15

    [defaults]
    context=dongle-incoming
    rxgain=0
    txgain=0
    usecallingpres=yes
    callwaiting=no
    dtmf=inband
    mindtmfgap=45; minimal interval from end of previews DTMF from begining of next in ms
    mindtmfduration=80; minimal DTMF tone duration in ms
    mindtmfinterval=200; minimal interval between ends of DTMF of same digits in ms

    [GSM1]
    audio=/dev/ttyUSB1
    data=/dev/ttyUSB2
    imei=*****************; E3131 — ввести IMEI модема

    Speichern Sie die Datei und wechseln Sie zur Datei extensions.conf. Sie können das Multiphone auskommentieren und zur Verwendung mit dem Modem hinzufügen.

    Registrieren Sie sich für den Betrieb von Anrufen über ein USB-Modem in der Datei extensions.conf
    [dongle-outgoing]; для исходящих вызовов:
    ;------------------ GSM1 Donle — exten => _8..........,1,NoOp()
    exten => _8..........,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
    exten => _8..........,n,Set(__SIP_CODEC_INBOUND=ulaw)
    exten => _8..........,n,Answer()
    exten => _8..........,n,Wait(2)
    exten => _8..........,n,Playback(/opt/var/lib/asterisk/sounds/itsp_names/beeline-gsm)
    exten => _8..........,n,Dial(DONGLE/GSM1/8${EXTEN:1},,T)
    exten => _8..........,n,Hangup()

    [dongle-incoming]; для входящих вызовов:
    exten => s,1,NoOp()
    exten => s,n,Wait(4)
    exten => s,n,Answer()
    exten => s,n(play),NoOp()
    exten => s,n,Wait(1)
    exten => s,n,Playback(hello)
    exten => s,n,Wait(0,5)
    exten => s,n,Playback(priv)
    exten => s,n,Set(TIMEOUT(digit)=1)
    exten => s,n,NoOp()
    exten => s,n,WaitExten(7)

    exten => _1,1,NoOp()
    exten => _1,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
    exten => _1,n,Set(__SIP_CODEC_INBOUND=ulaw)
    exten => _1,n,Set(CALLERID(num)=8${CALLERID(num):1})
    exten => _1,n(dial_ext),Dial(SIP/101,60,mt)

    exten => _2,1,NoOp()
    exten => _2,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
    exten => _2,n,Set(__SIP_CODEC_INBOUND=ulaw)
    exten => _2,n,Set(CALLERID(num)=8${CALLERID(num):1})
    exten => _2,n(dial_ext),Dial(SIP/302,60,mt)

    exten => _3,1,NoOp()
    exten => _3,n,Set(__SIP_CODEC_OUTBOUND=ulaw)
    exten => _3,n,Set(__SIP_CODEC_INBOUND=ulaw)
    exten => _3,n,Set(CALLERID(num)=8${CALLERID(num):1})
    exten => _3,n(dial_ext),Dial(SIP/304,60,mt)

    Nun fing alles an und funktionierte wie es sollte. Eingehende Anrufe an die Nummer werden von Asterisk empfangen, und der Benutzer wählt die Nummer, um zu bestimmen, wo er anrufen soll. Ein abgehender Anruf wird von jedem Mobilfunkbetreiber geleitet, egal wo Sie sind. Das heißt, Sie können Ihre SIM-Karte in ein USB-Modem einlegen und in jeden Teil der Welt gehen. Dort genügt es, auf das Netzwerk zuzugreifen, und auf einem Smartphone / Laptop, um einen SIP-Client zu haben, der eine Verbindung zu Ihrem Asterisk-Server herstellt. Lösung läuft und läuft. Die daraus resultierenden Störungen wurden durch Hinzufügen eines USB-Hubs mit externer Stromversorgung und Ersetzen des Flash-Laufwerks behoben, da bei einigen Laufwerken Fehlfunktionen auftraten. Denn alle Arbeiten zur Einführung der Telefonie in die Arbeit werden einen Abend dauern.

    Um diese Arbeit zu verhindern, können Sie mit einem einzigen Befehl ein Backup des gesamten Asterisk auf einem Flash-Laufwerk erstellen:

    Wir machen ein Backup von Asterisk auf einem Flash-Laufwerk
    tar cvzf /opt/backup-`date "+%Y-%m-%d_%H-%M"`.tar.gz -C /opt/ bin etc home lib lost+found root sbin share tmp usr var

    Bonus für Besitzer von Zyxel Keenetic LTE

    Es ist zu beachten, dass dieser Router auch mit zwei SIP-Clients mit physischen FXS-Ports ausgestattet ist, an die beliebige analoge Telefone angeschlossen werden können. Und dieser Client stellt einfach eine Verbindung zum Asterisk-Server her, der sich darauf dreht.

    Bonus für Zyxel Keenetic-Besitzer *

    Wenn Sie kein Geld für den Kauf von SIP-Telefonen ausgeben möchten, unterstützen die Keenetic-Router den Zyxel-DECT-Adapter, der die SIP-Telefoniefunktion mit der Möglichkeit bietet, ein beliebiges DECT-Mobilteil anzuschließen.

    Fazit

    Die Aufgabe der freien Kommunikation zwischen getrennten Teilnehmern mit häufigen und langwierigen Verhandlungen wurde gelöst. Die Aufgabe der "Anwesenheit" des Teilnehmers in der Stadt und der freien Kommunikation mit dem Besitzer der Nummer, egal wo sich der Besitzer befindet, wird ebenfalls gelöst. Die Lösung mit Virtualisierung auf einem QNAP TS-451-Netzlaufwerk profitiert von der Möglichkeit, Asterisk über eine Webschnittstelle zu konfigurieren. Die Lösung mit dem Router erfordert jedoch praktisch keine Kosten. Sternchen ist einfach! Warum für Roaming bezahlen, wenn die Verbindung kostenlos sein kann?

    Ich möchte dem Zyxel-Team gesondert für seine Reaktionsfähigkeit, die Unterstützung bei Experimenten und die Erhöhung der Funktionalität ihrer Geräte danken.

    PS Wie nachstehend richtig kommentiert, verbieten fast alle Mobilfunkbetreiber die Verwendung einer SIM-Karte zur Erstellung eines GSM-Gates. In der Tat wird Sie niemand blockieren, bis Sie den kommerziellen Betrieb Ihres Gates beginnen. Der Autor ist nicht für Ihre Handlungen verantwortlich.
    Ich weiß jedoch Fälle, in denen Unternehmen Dutzende von SIM-Karten in GSM-Gateways für günstige Anrufe zu Mobilfunknummern verwendet haben.

    Jetzt auch beliebt: