.titleBar { margin-bottom: 5px!important; }

[HowTo] Sipgate Trunking für direktes Callthrouh nutzen

Dieses Thema im Forum "Asterisk auf FBF" wurde erstellt von Andre, 16 Sep. 2011.

  1. Andre

    Andre IPPF-Promi

    Registriert seit:
    27 Dez. 2004
    Beiträge:
    3,307
    Zustimmungen:
    4
    Punkte für Erfolge:
    38
    Beruf:
    Ingenieur
    Ort:
    Schotten
    #1 Andre, 16 Sep. 2011
    Zuletzt bearbeitet: 15 Nov. 2011
    Moin,

    eine der meiner Meinung nach interessantesten Möglichkeiten von Asterisk ist es, gegenüber den in der Fritz!Box fon vorhandenen Möglichkeiten viel detailiertere Rufumleitungen zu realisieren. Zudem kann man eine nahezu unbegrenzte Zahl von Festnetzrufnummern erzeugen, wenn man den Asterisk mit Sipgate trunking einsetzt.

    Die Nachteile des "normalen" Call-throughs:
    - unkomfortabel (Nachwahl PIN, anschließend Kurzwahl oder 0+Zielrufnummer)
    - fehlerträchtig (DTMF-Tonübertragung über Handy und VoIP -> Fehlerquote bei mir locker 60%)

    Sehr praktisch wäre es also, wenn man auf die DTMF-Tonübertragung verzichten könnte.

    Die Lösung:
    Sipgate Trunking

    Mit Sipgate Trunking wird eine Rufnummer verlängert, man kann nun Durchwahlen nutzen. Da reguläre Nummern eine bestimmte Maximallänge haben, erreicht man die Durchwahlen, wenn sie zu lang sind, eventuell nicht.
    Bei meinem UI-Handy ist die maximale Nummernlänge 13 (mit Vorwahl, ohne führende 0). Ich besitze eine portierte 8-stellige Rufnummer, kann also eine fünfstellige Durchwahl anhängen. Das bedeutet, dass mir alleine diese Nummer 111.111 verschiedene erreichbare Ziele ermöglicht (wovon eine aber ohne Durchwahl für normale eingehende Anrufe erhalten bleiben soll).
    Das ist zugegebenermaßen ein Sonderfall, aber in den meisten Fällen kann man zumindest 2 Ziffern anhängen.

    Bestellt man Sipgate Trunking mit 3 Rufnummern, zahlt man dafür monatlich 3,95¤. Für portierte Rufnummern zahlt man monatlich nichts. Hat man schon einen Sipgate basic oder plus Account, kann man den übernehmen - und hat keine laufenden Kosten für die Nummern. Sipgate Trunking 2 (maximal zwei eingehende Gespräche gleichzeitig) kostet ebenfalls nichts. Im Idealfall sind die Einstigskosten also 0.
    Zum Testen bekommt man bei Sipgate Trunking 2 fünf Rufnummern für 30 Tage, die sich aber nicht weit verlängern lassen, da sie schon relativ viele Stellen besitzen. Es ist aber zum Testen auf jeden Fall eine feine Sache.
    Leider verliert man bei der Übernahme eines Sipgate plus - Accounts zu Sipgate Trunking alle Faxe - und auch die schöne Faxfunktion hat man nicht mehr. Auch besitzt man nur noch einen Account, muss nun also die Trennung bei verschiedenen Rufnummern zwingend durch Asterisk vornehmen (Asterisk geht also danach in Produktiveinsatz).

    Wie funktioniert mein direktes Call Through?

    Nehmen wir an, man habe die Nummer 040-12345 zu Sipgate Trunking portiert. Nun erreicht man den Trunking Account auch über 040-12345-12345 - oder eben eine beliebige (wenn auch nicht unendlich lange) Zahl von nachgestellten Ziffern. Würde man den Account direkt in der Fritzbox eintragen, so wären das für diese alles eingehende Anrufe auf die gleiche Nummer.

    Anders bei Asterisk. Dieser kann den SIP-Header auswerten und die korrekte "to" Adresse rausfinden - also was nun wirklich gewählt wurde. Diesen Trick kann man schon bei Sipgate Basic verwenden, um mehrere Nummern getrennt zu behandeln.

    Da ich 11 echte Nummern bei Sipgate habe, verwende ich den Asterisk gleichzeitig, um den Sipgate-Account in 11 getrennte Accounts "aufzuspalten", an denen sich die FBF anmelden kann, sowie für das hier vorgestellte Call Through mit Trunking.

    Um das ganze möglichst komfortabel zu machen, zweckentfremde ich das FBF-Telefonbuch ausschließlich für die Weiterleitungsziele und verwende auch nur zwei Stellen als Rufnummernerweiterung.

    Grob schematisch passiert folgendes:

    • Es geht ein Anruf im Asterisk beim Sipgate-Trunking Account ein
    • Asterisk wertet den "to"-Header aus
    • Ist es eine der echten portierten Nummern, wird er zum entsprechend eingerichtetem "Telefon" geleitet (den für die Anmeldung der FBF eingerichteten Account)
    • Ist es meine 8-stellige Nummer, die um zwei Ziffern verlängert wurde, prüft er, ob Anrufer meine Handynummer ist, nimmt ie letzten 2 Ziffern, packt "**7" davor und wählt diese Nummer (z.B. "**712") über einen IP-Telefonanschluss der FBF (hier: 620) raus.
    • Die FBF schaut im Telefonbuch nach und leitet den Anruf auf das eingetellte Ziel (intern, extern, SIP-Uri) unter Beachtung der Wahlregeln der FBF
    Einmal eingerichtet, wird es so möglich, 100 Ziele komfortabel zu günstigen Preisen vom Handy anzurufen. Für Anrufe zu Fremdnetzen zahlt man z.B. rd. 4 Cent/min statt 9,9 Cent/min, SIP-Uris kann man anrufen (das geht ja sonst gar nicht), über die Ersparnis bei Auslandstelefonaten ganz zu schweigen. 100 Einträge reichen meist, da Festnetznummern und netzinterne Ziele direkt im Telefonbuch des handys gespeichert werden - da braucht man den Umweg ja nicht.

    Das ganze hört sich komplizierter an, als es ist. Einmal eingerichtet, ist die Wartung sehr einfach - Die Ziele ändert man direkt über das Webinterface der FBF.

    Weitere Ziele (z.B. 1-stellige Erweiterungen) kann man natürlich auch direkt in der extensions.conf definieren. Das bietet sich an für Nummern, die zum einen wichtig sind, zum anderen sich nicht so schnell ändern. Bei vielen Zielen kann es sinnvoll sein, die AstDB zu verwenden und die extensions.conf entsprechend zu modifizieren. Eventuell eignet sich eine Textdatei und ein Skript, welches sie bei Wahl einer bestimmten Nummer einliest - wer möchte kann aber auch dazu ein Webinterface programmieren, bei meinen 152.221 direkt möglichen Rufzielen wäre das schon toll...

    Aber genug der Vorrede, hier meine (vereinfachte und bereinigte) sip.config und die extensions.config. Die Inhalte sollten selbst erklärend sein:

    sip.config
    Code:
    [general]
    language=de
    bindport = 5061
    bindaddr = 0.0.0.0
    realm = mein-dyn-dnsname
    externip = mein-dyn-dnsname
    context=sonstige
    
    register => 1234567t0:qwertz@sipconnect.sipgate.de/1234567t0
    register => 620:qwertz@192.168.178.1/620
    
    ;********************
    ;* Externe Accounts *
    ;********************
    
    ; Sipgate Trunk (alle portierten Nummern)
    [sipgate99]
    host = sipconnect.sipgate.de
    defaultuser = 1234567t0
    secret = qwertz
    fromuser = 1234567t0
    fromdomain = sipconnect.sipgate.de
    canreinvite = no
    qualify = yes
    nat = yes
    insecure = port,invite
    type = friend
    
    ; FritzBox (ausgehend über IP-Telefon)
    [fbfgate]
    host = 192.168.178.1
    defaultuser = 620
    secret = qwertz
    fromuser = 620
    fromdomain = fritz.box
    canreinvite = no
    qualify = yes
    nat = yes
    insecure = port,invite
    type = friend
    
    ;*********************************************
    ;* Alte Rufnummern zum direkten Registrieren *
    ;* ("Accountsplitting")                      *
    ;*********************************************
    
    ; Für die einzelnen SipGate-Zielnummern einzelne Accounts einrichten,
    ; an die sich die FBF anmelden kann
    
    [00495%%%%%%%]
    host=dynamic
    type=friend
    secret=qwertz
    context=meine-telefone
    
    [00496%%%%%%%%%]
    host=dynamic
    type=friend
    secret=qwertz
    context=meine-telefone
    
    ; ... usw. für die übrigen 9 Nummern
    
    extensions.config
    Code:
    [sonstige]
    
    ; hier wird bei eingehenden Anrufen auf dem Sipgate-Trunk-Account die wirkliche
    ; Zielrufnummer aus dem SIP-Header extrahiert, als neue Extension gesetzt und
    ; im Context [from-sipgatetrunk] weiter behandelt
    
    exten => _X.,1,Goto(from-sipgatetrunk,${CUT(CUT(SIP_HEADER(To),@,1),:,2)},1)
    
    
    [from-sipgatetrunk]
    
    ; zunaechst werte ich meine echten 11 Rufnummern aus und stelle sie an die
    ; passenden "IP-Telefone" weiter. Meine Fritzbox kann die Nummern dann einzeln
    ; registrieren und unterschiedlich behandeln.
    ; Anonymisiert habe ich durch % (das Zeichen kommt sonst nirgends vor)
    
    exten => 00495%%%%%%%,1,Dial(SIP/00495%%%%%%%)
    exten => 00496%%%%%%%%%,1,Dial(SIP/00496%%%%%%%%%)
    ; ... usw. für die übrigen 9 Nummern
    
    ; nun kommt das Interessante, wir werten die zwei folgenden Ziffern aus
    ;
    
    exten => _00495%%%%%%%XX,1,Set(OWN=0152%%%%%%%)
    exten => _00495%%%%%%%XX,2,Set(DURCHWAHL=${EXTEN:-2})
    exten => _00495%%%%%%%XX,3,GotoIf($["${CALLERID(num)}" = "${OWN}"]?ja:nein)
    exten => _00495%%%%%%%XX,100(ja),NoOp("Mein Handy ruft an")
    exten => _00495%%%%%%%XX,101,Dial(SIP/**7${DURCHWAHL}@fbfgate)
    exten => _00495%%%%%%%XX,200(nein),NoOp("schade, das bin gar nicht ich")
    
     
  2. udosw

    udosw Aktives Mitglied

    Registriert seit:
    20 März 2004
    Beiträge:
    1,114
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Hannover
    Ich habe mir erlaubt, diesen guten Beitrag abzutrennen und in ein neues The,a zu verschieben. In dem anderen Thread ging es um die grundsätzliche Installation von Asterisk auf div. Boxen. Dieses hier ist viel spezieller.

    Udo