Inhaltsverzeichnis

Dokumentation Telekom Sip-Trunk

Produkt: DeutschlandLAN SIP-Trunk

Achtung: Dies ist die „Anlagenanschluss“-Variante. Informationen zum „DeutschlandLAN IP Voice/Data S“ (die „DSL-Anschluss mit SIP-Trunk“-Variante für Small Business Kunden) finden sich hier.

Vorbereitungen

Folgende Anpassungen sind in der /opt/ucware/etc/asterisk/sip.conf vorzunehmen. Achtung diese Anpassungen können dazu führen, dass andere Sip-Trunks nicht mehr funktionieren, oder dass es zu Problemen mit den Telefonen kommt.

srvlookup=no
defaultexpiry=600

DNS-Override

In Asterik 11 ist der Service-Record-Lookup teilweise kaputt. Die SRV-Records werden nur beim registrieren berücksichtigt und nicht beim Invite. Daher müssen die Adressen aus dem vollständig aufgelösten SRV-Record in den A-Record übernommen werden.

Achtung die Adressen könnten sich jederzeit ändern ohne dass die Anlage das mitbekommt! Außerdem sind die Adressen je nach Standort unterschiedlich sein.

  1. Ermitteln der SRV-Records:
$ host -t SRV _sip._tcp.reg.sip-trunk.telekom.de
_sip._tcp.reg.sip-trunk.telekom.de has SRV record 0 5 5060 n-ipr-a01.sip-trunk.telekom.de.
_sip._tcp.reg.sip-trunk.telekom.de has SRV record 1 5 5060 n-ipr-a02.sip-trunk.telekom.de.
_sip._tcp.reg.sip-trunk.telekom.de has SRV record 10 5 5060 d-ipr-a01.sip-trunk.telekom.de.
  1. Auflösen des A-Records (IP-Adresse):
$ host n-ipr-a01.sip-trunk.telekom.de
n-ipr-a01.sip-trunk.telekom.de has address 217.0.15.67

/etc/bind/db.telekom:

$TTL    604800
@       IN      SOA     dns00.dns.t-ipnet.de. hostmaster.t-ipnet.net. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
reg.sip-trunk.telekom.de.       IN      A       217.0.26.197
sip-trunk.telekom.de.   IN      A       217.0.26.197

/etc/bind/named.conf.local

include "/etc/bind/zones.rfc1918";
zone "reg.sip-trunk.telekom.de." {
    type master;
    file "/etc/bind/db.telekom";
};
zone "sip-trunk.telekom.de." {
    type master;
    file "/etc/bind/db.telekom";
};

Anschließend müssen, sofern noch nicht geschehen, die forwarding Nameserver gesetzt werden.

/etc/bind/named.conf.options:

options {
        directory "/var/cache/bind";
        forwarders {
                10.0.200.1;
                192.168.1.1;
        };
        dnssec-validation no;
        auth-nxdomain no;
        listen-on-v6 {
                any;
        };
};

Damit die Einstellungen wirksam werden muss bind neu gestartet werden und es muss ggf. die /etc/resolv.conf angespasst werden.

Registerstring

Der Telekom SIP-Trunk erfordert einen speziellen1) Registerstring, dieser kann derzeit nur manuell in der sip.conf, im Abschnitt [general], angelegt werden.

register => tcp://<Tel.Nr.>@sip-trunk.telekom.de:<pass>:<T-Online Nummer>@reg.sip-trunk.telekom.de:5060/<Tel.Nr.>
;                ↑                              ↑      ↑                 ↑                       ↑
;                |          Benutzer            |  PW  |      WTF?       |       Registrar       |

Die <Tel.Nr.> ist die Telefonnummer des Trunks, d.h. seine Kopfnummer mit abschließender 0, als E.123. Z.B. +4922842273920.

Die ursprüngliche Registerzeile sollte entfernt werden.

#exec /opt/ucware/etc/asterisk/sip-register.conf.php

Gateway

Die Benutzereinstellung müssen unabhängig vom Registerstring auch in der sip.conf in den Gatewayeinstellungen vorgenommen werden!

Value
Registrar / Server sip-trunk.telekom.de oder reg.sip-trunk.telekom.de
Username T-Online Nummer (55…)
Password Trunk Passwort
Authuser <T-Online Nr>@sip-trunk.telekom.de
Extract target number fromto header
qualify no
Insecure port, invite

In den Advanced Options müssen die folgenden Werte eingestellt sein.

Value
transport=tcp
session-expires=6002)
usereqphone = yes
session-timers=refuse3)
fromdomain=sip-trunk.telekom.de4)

Die Einstellung userreqphone hängt den Tag user=phone am To-Header an. Eigentlich sollte dieser am From-Header angehängt werden, aber das ist nach aktuellem Kenntnissstand – ohne Asterisk-Patch – nicht möglich.

Key-Value-Store

Die match_peer_order muss auf ueIh gestellt sein. Außerdem muss hier tpcenable auf yes gesetzt werden. Danach sollte der Asterisk neugestartet werden.

Dialplan-Quirk

Der folgende Quirk ist nach aktuellen Wissenstand nicht nötig!

--[[--
Telekom Sip-Trunk Quirk
 
@author Martin T. Ledderboge
@copyright 2018 UCware GmbH
@script telekom-sip-trunk
@return callback
]]
 
local Channel = require 'core.channel'
local Log = require 'core.logger'
 
--- Realm of the sip provider (and it's NOT reg.sip-trunk.telekom.de!)
-- @field realm
local realm = "sip-trunk.telekom.de"
 
--- Quirk for the german *Telekom*
-- @param self caller object
-- @param extension callee extension
-- @param gateway gateway object with the following fields, {type, grpId, id, allowOut, extsource, host, name, title, dailstring}
return function(self, extension, gateway)
    -- get current caller id
    local callerid = Channel["CALLERID(num)"] or 'anonymous'
    -- Clear display name
    Channel["CALLERID(name)"] = ""
    -- CLIR
    app.sipremoveheader("P-Preferred-Identity")
    app.sipremoveheader("P-Asserted-Identity")
    -- CLIP
    app.sipaddheader(("P-Preferred-Identity: <sip:%s@%s>"):format(callerid, realm))
    -- Override Contact field, it's a telekom requirement, see TR118 for more information.
    app.sipremoveheader("Contact")
    app.sipaddheader("Contact: <sip:<external ip>:5060;bnc>") 
end

Tipps und Tricks

1)
sip.register.conf.php kann diesen nicht erzeugen, u.a. kann das Transportprotokoll nicht angeben werden.
2)
Wahrscheinlich auch nicht zwingend nötig.
3)
Verhindert dass Gespräche nach 30min abgebrochen werden.
4)
Nicht zwingend erforderlich.