Da ich selber andauernd die richtige Konfiguration der verschiedenen Provider nach lesen muss und auch öfters danach gefragt werde, beginne ich nun hier mal mit einer kleinen Sammlung.

Tipps zum Sip Config auslesen

Von Julian R. habe ich ein paar nützliche Tipps erhalten um die notwendigen VoIP Einstellungen eines Providers zu erhalten, die ich an dieser Stelle nochmal teilen möchte:

  • Einer Fritzbox mit Wireshark zugehören, wie sie sich verbindet. (Kann auch jeder andere Router sein)
  • Logging der SIP-Pakete im Asterisk aktivieren:
  • sip set debug on
  • pjsip logger on
  • Den Status abchecken mit:
    • pjsip show registrations
    • pjsip show endpoints

Telekom

SIP-ID/Benutzer:Telefonnummer (+49…)
Bildschirmname (falls vorhanden):Telefonnummer (+49…)
Authentifizierungsname/Benutzername:E-Mail-Adresse
z. B. name@t-online.de
Passwort:Passwort
SIP-Proxy:tel.t-online.de
Registrar:tel.t-online.de
Realm:tel.t-online.de
STUN-Server:stun.t-online.de
Outbound-Proxy:leer lassen oder ebenfalls tel.t-online.de

Hinweise

  • Geben Sie die SIP-ID ohne Leerzeichen und Sonderzeichen ein (entspricht Vorwahl und Rufnummer)
  • Die Eingabe der SIP-ID und des Bildschirmnamens müssen übereinstimmen.
  • Den Benutzernamen bitte vollständig klein schreiben.
  • Haben Sie Ihr Passwort vergessen? In diesem Fall halten wir für eine [Anleitung][1] für Sie bereit.
  • Falls Sie E-Mail-Adresse und Passwort noch nicht vergeben haben, können Sie diese im [Kundencenter][2] einrichten.
  • Ggf. müssen Sie zusätzlich noch für die von Ihrem VoIP-Client verwendeten lokalen Ports (SIP und RTP) eine Portweiterleitung einrichten. Welche Ports das sind, lässt sich oftmals der Konfigurations-Oberfläche entnehmen oder beim jeweiligen Hersteller erfragen.
  • Die Rufnummer immer im internationalen Format (+49…) eingeben.

Quelle: [https://www.telekom.de/hilfe/festnetz-internet-tv/ip-basierter-anschluss/einstellungen-fuer-die-ip-telefonie-mit-anderen-clients?samChecked=true][3] (Stand 17.11.2018)

Besonderheiten

Bei der Telekom gibt es zudem die oft genutzte Möglichkeit, einen anonymous Account zu nehmen. Dies ist immer dann möglich, wenn man im [Kundencenter][4] bei Internetverbindung: Einwahl über T-Online und zusätzlich Automatischer Login: Eingeschaltet gesetz hat. Hier gelten dann die folgenden Sip-Daten:

SIP-ID/BenutzerHaupt-Telefonnummer (+49…)
Authentifizierungsnameanonymous@t-online.de
Passworteinfach frei lassen oder nach Lust und Laune füllen 😉

Unterstütze Codecs

  • G.722 (HD-Voice)
  • G.711 (uLaw & aLaw)
  • G.729 (nicht getestet)
  • DTMF

[Kundencenter][5]

Deutsche Glasfaser

BenutzernameLaut Schreiben der Deutschen Glasfaser
KennwortLaut Schreiben der Deutschen Glasfaser
Registrardg.voip.dg-w.de
STUN Serverleerlassen
Fritzbox Einstellungen für die Deutsche Glasfaser Telefonie

[Kundencenter][7]

Sipgate

BenutzernameSIP-ID
KennwortSIP-Passwort
Registrarsipgate.de
STUN Serverleerlassen

Quelle: https://basicsupport.sipgate.de/hc/de/articles/206519079-Allgemeine-Konfigurationsdaten (Stand: 17.11.2018)

[Kundencenter][8]

Asterisk Beispiel Configs

pjsip.conf (tested)

Die pjsip.conf Konfiguration wurde mir freundlicherweise von Julian R. für den Beitrag zur Verfügung gestellt und funktioniert bei ihm problemlos mit der Deutschen-Glasfaser.

[transport-ext-udp]
type=transport
protocol=udp
bind=xxx.xxx.xxx.xxx    ; External IP

[transport-int-udp]
type=transport
protocol=udp
bind=xxx.xxx.xxx.xxx    ; Internal IP
local_net=192.168.0.0/16
; local_net=10.0.0.0/8    ; List all your nets

[dg-trunk_auth]
type=auth
auth_type=userpass
username=[xxxxx]    ; You received this from DG
password=[xxxxx]    ; You received this from DG
realm=*  ; Sadly this is required! DG uses both: dg.voip.dg-w.de & 10.64.1.1 (some internal ip of dg)

;========================================================================================

[dg-trunk-identify](!)
type=identify
match=dg.voip.dg-w.de

[dg-trunk-endpoint](!)
type=endpoint
100rel=yes
disallow=all
allow=g722
allow=alaw
allow=ulaw
allow=gsm

[dg-trunk-aor](!)
type=aor

[tel-trunk]
type=registration
transport=transport-ext-udp
outbound_auth=dg-trunk_auth
server_uri=sip:dg.voip.dg-w.de
client_uri=sip:<your-tel-num>@dg.voip.dg-w.de
contact_user=<your-tel-num>
retry_interval=60
forbidden_retry_interval=600
expiration=3600
[tel-trunk](dg-trunk-identify)
endpoint=tel-trunk
[tel-trunk](dg-trunk-endpoint)
transport=transport-ext-udp
context=from-external
outbound_auth=dg-trunk_auth
aors=tel-trunk
from_domain=dg.voip.dg-w.de
[tel-trunk](dg-trunk-aor)
contact=sip:<your-tel-num>@dg.voip.dg-w.de:5060



;========================================================================================

[endpoint_internal](!)
type=endpoint
transport=transport-int-udp
disallow=all
allow=g722
allow=alaw
allow=ulaw
allow=gsm

[auth_userpass](!)
type=auth
auth_type=userpass

[aor_dynamic](!)
type=aor
max_contacts=1


; <name> should be the name of the ip-telefone, cause you probablyn have more than one phone...

[ip-tel-<name>](endpoint_internal)
auth=ip-tel-<name>
aors=ip-tel-<name>
context=from-ip-tel-<name>
[ip-tel-<name>](auth_userpass)
password=[xxxxxxxx]
username=ip-tel-<name>
[ip-tel-<name>](aor_dynamic)
; The name of the AOR section must match the user portion of the SIP URI in the "To:" header of the inbound SIP registration.
; That will usually be the "user name" set in your hard or soft phones configuration.

sip.conf

[general]
context=public
allowguest=no
alwaysauthreject=yes
udpbindaddr=0.0.0.0
tcpenable=no
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes
t38pt_udptl=yes
disallow=all
allow=g722
allow=alaw
allow=ulaw
allow=gsm

register => 0123456::anonymous@t-online.de@tel.t-online.de/0123456
register => yourusername:yoursecret@dg.voip.dg-w.de/01234566666

; register => user[:secret[:authuser]]@host[:port][/extension]

[peering](!)
type=peer
qualify=yes
insecure=port,invite
context=incoming
canreinvite=no
dtmfmode=info
nat=no

[std-device](!)
type=friend
nat=force_rport,comedia
host=dynamic
context=main
mailbox=100
vmexten=#0

; telekom
[telekom_0123456](peering)
secret=
username=anonymous@t-online.de
fromuser=0123456
fromdomain=tel.t-online.de
host=tel.t-online.de
realm=tel.t-online.de
session-timers=refuse     ; Important!

; dg
[dg_01234566666](peering)
secret=yoursecret
username=yourusername
fromdomain=tel.t-online.de
host=tel.t-online.de
realm=tel.t-online.de

; office
[300](std-device)
callerid="Your Name" <300>
username=300
secret=yoursecret

extensions.conf

[general]
static=yes
writeprotect=no
clearglobalvars=no

[globals]
CONSOLE=Console/dsp
IAXINFO=guest
TRUNK=DAHDI/G2
TRUNKMSD=1
PREFIX_INTERNATIONAL=00
PREFIX_NATIONAL=49
PREFIX_LOCAL=431

[macro-mailbox]
;  ${ARG1} - anzurufendes(s) Gerät(e) (z. B. SIP/123&SIP/124)
;  ${ARG2} - Mailbox (oft gleich ${MACRO_EXTEN})
exten => s,1,Dial(${ARG1},10)               ; max. x Sekunden klingeln
exten => s,n,Goto(s-${DIALSTATUS},1)        ; zum Status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,VoiceMail(${ARG2},u)  ; Ansage "nicht erreichbar"
same => n,playback(vm-nobodyavail)
same => n,hangup()
exten => s-BUSY,1,VoiceMail(${ARG2},b)      ; Ansage "besetzt"
same => n,playback(vm-nobodyavail)
same => n,hangup()
exten => s-ANSWER,1,Hangup()                ; zur Sicherheit nach dem Gespräch auflegen
exten => _s-.,1,Goto(s-NOANSWER,1)          ; alles andere wie nicht erreichbar behandeln

[prefix-calling]
; ${PREFIX_INTERNATIONAL} - Vorwahl International (meist 00)
; ${PREFIX_NATIONAL}      - Vorwahl des Landes
; ${PREFIX_LOCAL}         - Vorwahl des Ortes
exten => _ZXXX.,1,Goto(${PREFIX_INTERNATIONAL}${PREFIX_NATIONAL}${PREFIX_LOCAL}${EXTEN},1) ; + regionale Vorwahl
exten => _0[2-9].,1,Goto(${PREFIX_INTERNATIONAL}${PREFIX_NATIONAL}${EXTEN:1},1)            ; + nationale Vorwahl
exten => _01[5-7].,1,Goto(${PREFIX_INTERNATIONAL}${PREFIX_NATIONAL}${EXTEN:1},1)           ; + nationale Vorwahl für Handy
exten => _[+].,1,Goto(${PREFIX_INTERNATIONAL}${EXTEN:1},1)                                 ; '+' ersetzten mit 00

[echotest]
exten => 100,1,answer
same => n,wait(1)
same => n,playback(demo-echotest)
same => n,echo
same => n,playback(demo-echodone)
same => n,hangup

[record]
exten => 101,1,answer
same => n(record),Playback(please-enter-your&vm-message&after-the-tone)
same => n,wait(1)
same => n,record(recordings/${CALLERID(num)/%d}:gsm)
same => n,wait(2)
same => n,playback(${RECORDED_FILE})
same => n,hangup

[voicemail]
exten => 123,1,noop(Accessing voice menu)
same => n,VoicemailMain(s${CALLERID(num)})

[fallback]
exten => e,1,answer
same => n,wait(1)
same => n,playback(im-sorry)
same => n,hangup()

[emergency]
exten => _11[02],1,NoOp(Notruf! ${EXTEN} von ${CALLERID(all)})
same => n,Dial(SIP/${EXTEN}@telekom_0123456)
same => n,Hangup()

[internal]
include => remote-karlsruhe
include => local-kiel
exten => i,1,Congestion

[remote-karlsruhe]
exten => _2XX,1,noop(local call via karlsruhe ${EXTEN})
same => n,SIPAddHeader("Alert-Info: <https://sip.external.com>\;info=alert-internal\;x-line-id=0")
same => n,Dial(IAX2/karlsruhe-out/${EXTEN})

[local-kiel]
exten => _3XX,1,noop(local call via kiel ${EXTEN})
same => n,SIPAddHeader("Alert-Info: <https://sip.external.com>\;info=alert-internal\;x-line-id=0")
same => n,Macro(mailbox,SIP/${EXTEN},${EXTEN})

[incoming]
exten => 0123456,1,noop(incoming call from ${EXTEN})
;same => n,answer
;same => n,wait(1)
;same => n,playback(hello)
;same => n,dial(SIP/300,10,m)
;same => n,playback(vm-nobodyavail)
;same => n,hangup()

exten => 01234566666,1,noop(incoming call from ${EXTEN})
same => n,dial(IAX2/karlsruhe-out/200)
same => n,hangup()

[incoming-karlsruhe]
include => emergency
include => local-kiel
include => outgoing-telekom

[outgoing-telekom]
include => prefix-calling
exten => _00.,1,noop(Outgoing call via telekom)
same => n,Set(CALLERID(all)="Your Name" <0123456>)
same => n,dial(SIP/${EXTEN}@telekom_0123456)
same => n,hangup()

[outgoing-db]
include => prefix-calling
exten => _00.,1,noop(Outgoing call via db)
same => n,Set(CALLERID(all)="Your Name" <01234566666>)
same => n,dial(SIP/${EXTEN}@dg_01234566666)
same => n,hangup()

[main]
include => emergency
include => echotest
include => record
include => voicemail
include => internal
include => outgoing-telekom
;include => fallback

[public]
;should be empty

iax.conf

[general]
bindport=4569
;autokill=yes
;bandwidth=low
;authdebug=yes
calltokenoptional=172.17.0.1/255.255.255.0

iaxcompat=yes
minregexpire=40
maxregexpire=3600

[guest]
type=user
context=public
callerid="Guest IAX User"

; incoming
[karlsruhe]
type=user
host=dynamic
secret=yoursecret
context=incoming-karlsruhe

; outgoing
[karlsruhe-out]
type=peer
host=10.8.0.1
username=kiel
secret=yoursecret
qualify=yes
trunk=yes

[1]: https://www.telekom.de/hilfe/vertrag-meine-daten/login-daten-passwoerter/passwort-wiederherstellen [2]: https://kundencenter.telekom.de/ [3]: https://www.telekom.de/hilfe/festnetz-internet-tv/ip-basierter-anschluss/einstellungen-fuer-die-ip-telefonie-mit-anderen-clients?samChecked=true [4]: https://kundencenter.telekom.de/kundencenter/kundendaten/login-einstellungen/index.html [5]: http://kundencenter.telekom.de/ [7]: https://kundenportal.deutsche-glasfaser.de/kundenportal/#/selfcare/login?returnUrl=%2Fhome [8]: https://login.sipgate.com/