[geloest] Telekom VOIP "Ich höre den Gesprächspartner nicht"

Konfigurationsdiskussionen bei Asterisk direkt

Moderatoren: rainer, Tim

Antworten
sharbich
Anfänger
Beiträge: 4
Registriert: Do 3. Okt 2019, 16:04

[geloest] Telekom VOIP "Ich höre den Gesprächspartner nicht"

Beitrag von sharbich » Mi 13. Nov 2019, 17:22

Hallo Ihr Lieben,

ich bin seit mehreren Wochen an ein Problem dran das ich nicht gelöst bekomme. Ich besitze ein VOIP Anschluss der Telekom und betreibe ein Asterisk Server. Ich habe auf mein Smartphone ein ZoiPer VOIP SIP Client am laufen der sich am Asterisk Server anmeldet.

Wenn ich jetzt ein Telefonat nach draußen führen möchte dann wird die Verbindung aufgebaut jedoch kann ich mein Gesprächspartner nicht hören. Aber er hört mich. Das gleiche Problem besteht wenn ich von draußen angerufen werde. Ich höre mein Gesprächspartner nicht aber er mich.

So wie es aussieht scheint es Probleme mit dem RTP Datenfluss zu geben. Wahrscheinlich ein NAT Problem. Bevor ich Euch mitteile was ich bis jetzt unternommen habe möchte ich Euch meine Netztopologie erläutern:

Die SIP Server der Telekom stehen im Netzsegment 217.0.0.0/13.
Ich besitze keine feste IP-Adresse. Diese wird aber auf mein Speedport SMART per Dynamisches DNS regelmäßig aktualisiert.
Intern besitzt mein Speedport SMART (VDSL-Modem) die IP-Adresse 192.168.0.1. Dieser baut die Verbindung zum Provider auf.
Mein zentraler Router ist ein OpenWRT Router, Verion 18.06 und hat die WAN IP-Adresse 192.168.0.2. Ist also direkt mit dem Speedport SMART verbunden.
Mein Asterisk Server steht in der DMZ und hat die IP-Adresse 192.168.140.20.
Mein ZoiPer VOIP SIP Client hat die IP-Adresse 192.168.30.129.
Die Netze sind durch VLAN's getrennt. Meine Netztopologie sieht wie folgt aus:
2019_09_30_Netztopologie.jpg
2019_09_30_Netztopologie.jpg (103.65 KiB) 168 mal betrachtet
Ich füge Euch mal meine Asterisk Konfigurationsdateien bei.
pjsip.conf

Code: Alles auswählen

root@dsme01:~# cat /etc/asterisk/pjsip.conf
;=========== General settings ===========
[global]
type=global
user_agent=Asterisk PBX
endpoint_identifier_order=ip,username
default_from_user=0abcd900856


[transport-tcp-nat]
type=transport
protocol=tcp
bind=192.168.140.20:5070
local_net=192.168.0.0/16
external_media_address=example.com
external_signaling_address=example.com
external_signaling_port=5070


[transport-udp-nat]
type=transport
protocol=udp
bind=192.168.140.20:5070
local_net=192.168.0.0/16
external_media_address=example.com
external_signaling_address=example.com
external_signaling_port=5070


[telekom_0abcd900855]
type=registration
transport=transport-udp-nat
outbound_auth=telekom_0abcd900855_auth
outbound_proxy = sip:+49abcd900855@tel.t-online.de\;lr
server_uri=sip:tel.t-online.de:5070
client_uri=sip:+49abcd900855@tel.t-online.de:5070
contact_user=0abcd900855
retry_interval=60
forbidden_retry_interval=10
expiration=480
auth_rejection_permanent=false


[telekom_0abcd900856]
type=registration
transport=transport-udp-nat
outbound_auth=telekom_0abcd900856_auth
outbound_proxy = sip:+49abcd900856@tel.t-online.de\;lr
server_uri=sip:tel.t-online.de:5070
client_uri=sip:+49abcd900856@tel.t-online.de:5070
contact_user=0abcd900856
retry_interval=60
forbidden_retry_interval=10
expiration=480
auth_rejection_permanent=false


[telekom_0abcd900855_auth]
type=auth
auth_type=userpass
password=
username=anonymous@t-online.de
realm=tel.t-online.de


[telekom_0abcd900856_auth]
type=auth
auth_type=userpass
password=
username=anonymous@t-online.de
realm=tel.t-online.de


[telekom_0abcd900855_out]
type=endpoint
transport=transport-udp-nat
context=unspecified
disallow=all
allow=g722
allow=alaw
outbound_auth=telekom_0abcd900855_auth
outbound_proxy = sip:+49abcd900855@tel.t-online.de\;lr
aors=telekom_0abcd900855_out
callerid=0abcd900855
from_user=0abcd900855
from_domain=tel.t-online.de
timers=yes
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
direct_media=no


[telekom_0abcd900856_out]
type=endpoint
transport=transport-udp-nat
context=unspecified
disallow=all
allow=g722
allow=alaw
outbound_auth=telekom_0abcd900856_auth
outbound_proxy = sip:+49abcd900856@tel.t-online.de\;lr
aors=telekom_0abcd900856_out
callerid=0abcd900856
from_user=0abcd900856
from_domain=tel.t-online.de
timers=yes
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
direct_media=no


[telekom_0abcd900855_out]
type=aor
contact=sip:+49abcd900855@tel.t-online.de


[telekom_0abcd900856_out]
type=aor
contact=sip:+49abcd900856@tel.t-online.de


[telekom_0abcd900856_in]
type=endpoint
transport=transport-udp-nat
context=telekom_0abcd900856_in
disallow=all
allow=g722
allow=alaw
outbound_auth=telekom_0abcd900856_auth
direct_media=no


[telekom_0abcd900856_in]
type=identify
endpoint=telekom_0abcd900856_in
match=217.0.0.0/13


[sgsthme01]
type=endpoint
transport=transport-udp-nat
context=internalsip
disallow=all
allow=g722
allow=alaw
auth=auth-sgsthme01
aors=sgsthme01


[auth-sgsthme01]
type=auth
auth_type=userpass
username=sgsthme01
password=#########
realm=sgsthme01realm


[sgsthme01]
type=aor
max_contacts=1
remove_existing=true


[sgsthme01]
type=identify
endpoint=sgsthme01
match=192.168.30.129
match=192.168.190.65


[ipmanme01]
type=endpoint
transport=transport-udp-nat
context=internalsip
disallow=all
allow=g722
allow=alaw
auth=auth-ipmanme01
aors=ipmanme01


[auth-ipmanme01]
type=auth
auth_type=userpass
username=ipmanme01
password=#########
realm=ipmanme01realm


[ipmanme01]
type=aor
max_contacts=1
remove_existing=true


[ipmanme01]
type=identify
endpoint=ipmanme01
match=192.168.30.132


;=========== ACL's ===========
[acl]
type=acl
deny=0.0.0.0/0.0.0.0
permit=217.0.0.0/13
permit=192.168.0.0/16
extensions.conf

Code: Alles auswählen

root@dsme01:~# cat /etc/asterisk/extensions.conf
[general]
static=yes
writeprotect=yes
autofallthrough=yes
extenpatternmatchnew=no
clearglobalvars=no
userscontext=unspecified


[unspecified]
exten => _X.,1,Answer()
same => n,Verbose(D E F A U L T ==> ${CALLERID(num)} kam um ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)} in UNSPECIFIED an, als es versuchte die Nummer ${EXTEN} anzurufen.)
  same => n,Playback(No_permissions)
  same => n,Hangup()

[internalsip]
; direkt einzelne User anwaehlen
exten => sgsthme01,1,Dial(PJSIP/sgsthme01)
exten => ipmanme01,1,Dial(PJSIP/ipmanme01)

;Mailboxabfrage von intern ohne PIN
exten => mailboxname,1,VoiceMailMain(mailboxname@VoiceMailContext,s)
exten => 5201,1,VoiceMailMain(5201@VoiceMail1,s)


;National, mit +49 gewaehlt
exten => _+49ZXX!.,1,Dial(PJSIP/telekom_0abcd900856_out/sip:0${EXTEN:3}@tel.t-online.de,60)
exten => _+49ZXX!.,n,Hangup()

;International
exten => _+X.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that)
  same => n,Hangup()
exten => _00X.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that)
  same => n,Hangup()

;National, mit 0 vorneweg
exten => _0Z.,1,Dial(PJSIP/telekom_0abcd900856_out/sip:${EXTEN}@tel.t-online.de,60)
exten => _0Z.,n,Hangup()
;Ortsnetz
exten => _Z.,1,Dial(PJSIP/telekom_0abcd900856_out/sip:${EXTEN}@tel.t-online.de,60)
exten => _Z.,n,Hangup()

;Notrufe gehen immer
exten => 110,1,Dial(PJSIP/telekom_0abcd900856_out/sip:110@tel.t-online.de,60)
exten => 110,n,Hangup()
exten => 112,1,Dial(PJSIP/telekom_0abcd900856_out/sip:112@tel.t-online.de,60)
exten => 112,n,Hangup()


; ********* Kostenpflichtige Sondernummern ***********
exten => _0137Z.,1,NoOp(Blocked: ${EXTEN}) ;Servicenummern für TeleVoting
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0138Z.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0180Z.,1,NoOp(Blocked: ${EXTEN}) ;Servicenummern für Service-Dienste
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0181Z.,1,NoOp(Blocked: ${EXTEN}) ;Zugang zu VPN, Kunden-Hotline
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0182Z.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0183Z.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0184Z.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0185Z.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0186Z.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0187Z.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0188Z.,1,NoOp(Blocked: ${EXTEN})
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _032Z.,1,NoOp(Blocked: ${EXTEN}) ;Vorwahl für Internettelefonie-Nutzer
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _0700Z.,1,NoOp(Blocked: ${EXTEN}) ;persönliche Rufnummer 0700
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _09001Z.,1,NoOp(Blocked: ${EXTEN}) ;Premiumdienste Information
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _09003Z.,1,NoOp(Blocked: ${EXTEN}) ;Premiumdienste Unterhaltung
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _09005Z.,1,NoOp(Blocked: ${EXTEN}) ;Premiumdienste Sonstiges, Erotik
  same => n,Playback(sorry-cant-let-you-do-that3)
  same => n,Hangup()
exten => _09009Z.,1,NoOp(Blocked: ${EXTEN}) ;Dialer
 same => n,Playback(sorry-cant-let-you-do-that3)
 same => n,Hangup()


exten => 0abcd900856,1,Dial(PJSIP/sgsthme01,30)
exten => 0abcd900856,n,VoiceMail(mailboxname@mailboxcontext)
exten => 0abcd900856,n,Hangup()


[telekom_0abcd900856_in]
exten => 0abcd900856,1,Dial(PJSIP/sgsthme01,30)
  same => n,Playback(Ansagetext)
  same => n,VoiceMail(mailboxname@mailboxcontext)
  same => n,Hangup()
rtp.conf

Code: Alles auswählen

root@dsme01:~# cat /etc/asterisk/rtp.conf
[general]
rtpstart=30000
rtpend=30099
rtpchecksums=yes
Auf meinen OpenWRT Router habe ich für SIP folgende Kernelmodule geladen:

Code: Alles auswählen

root@rome01:~# lsmod | grep sip
nf_conntrack           73728 37 nf_nat_pptp,nf_conntrack_pptp,nf_conntrack_netlink,nf_conntrack_ipv6,ipt_MASQUERADE,xt_state,xt_nat,xt_helper,xt_conntrack,xt_connmark,xt_connlimit,xt_connbytes,xt_REDIRECT,xt_CT,nf_nat_tftp,nf_nat_snmp_basic,nf_nat_sip,nf_nat_masquerade_ipv4,nf_nat_irc,nf_conntrack_ipv4,nf_nat_ipv4,nf_nat_h323,nf_nat_ftp,nf_nat_amanda,nf_nat,nf_flow_table,nf_conntrack_tftp,nf_conntrack_snmp,nf_conntrack_sip,nf_conntrack_rtcache,nf_conntrack_proto_gre,nf_conntrack_irc,nf_conntrack_h323,nf_conntrack_ftp,nf_conntrack_broadcast,nf_conntrack_amanda,act_connmark
nf_conntrack_sip       28672 21 nf_nat_sip
nf_nat                 24576 12 nf_nat_pptp,xt_nat,nf_nat_tftp,nf_nat_sip,nf_nat_redirect,nf_nat_proto_gre,nf_nat_masquerade_ipv4,nf_nat_irc,nf_nat_ipv4,nf_nat_h323,nf_nat_ftp,nf_nat_amanda
nf_nat_sip             20480  0 
Folgende iptables Regeln habe ich aktiviert:

Code: Alles auswählen

iptables -t raw -A OUTPUT -p udp -m udp --sport 5070 -j CT --helper sip
iptables -t raw -A PREROUTING -p udp -m udp --dport 5070 -j CT --helper sip
Meine conntrack Ausgabe auf dem OpenWRT Router sagt folgendes aus:

Code: Alles auswählen

root@rome01:~# conntrack -L | grep -E '5070|sip'
udp      17 3320 src=192.168.140.20 dst=217.0.28.161 sport=5070 dport=5060 packets=95 bytes=66706 src=217.0.28.161 dst=192.168.0.2 sport=5060 dport=5070 packets=96 bytes=72735 [ASSURED] mark=0 helper=sip use=1
udp      17 122 src=192.168.30.129 dst=192.168.140.20 sport=42027 dport=5070 packets=374 bytes=222649 src=192.168.140.20 dst=192.168.30.129 sport=5070 dport=42027 packets=219 bytes=124912 [ASSURED] mark=0 use=1
conntrack v1.4.4 (conntrack-tools): 210 flow entries have been shown.
Die Firewall auf dem Router ist bei allen Zonen auf (Eingang / Ausgang / Weiterleiten) auf zulassen gestellt. Bei der Zone WAN auf (Eingang /
Ausgang) auf zulassen gestellt und bei Weiterleiten auf zurückweisen gestellt.

Folgende Weiterleitungen habe ich in der Firewall aktiv:

Code: Alles auswählen

IPv4-UDP
Von IP range 217.0.0.0/13 in wan
Über beliebige Router-IP an port 5070	
IP 192.168.140.20, port 5070 in voip	

IPv4-UDP
Von IP range 217.0.0.0/13 in wan
Über IP 192.168.0.2 an ports 30000-30099	
IP 192.168.140.20, ports 30000-30099 in voip
Ich würde mich sehr freuen wenn Ihr mir noch weitere Tipp's geben könntet was ich noch bei der Fehleranalyse berücksichtigen kann?

Lieben Gruß von Stefan
Zuletzt geändert von sharbich am Do 14. Nov 2019, 00:09, insgesamt 1-mal geändert.

sharbich
Anfänger
Beiträge: 4
Registriert: Do 3. Okt 2019, 16:04

Re: Telekom VOIP "Ich höre den Gesprächspartner nicht"

Beitrag von sharbich » Mi 13. Nov 2019, 17:48

Hallo Ihr Lieben,

bei Bedarf könnte ich Euch auch ein pac File zur Verfügung stellen wenn es hilfreich wäre

Code: Alles auswählen

tcpdump -i eth2 udp port 5070 or udp portrange 30000-30099 -s 0 -w filename.cap
Lieben Gruß von Stefan

sharbich
Anfänger
Beiträge: 4
Registriert: Do 3. Okt 2019, 16:04

Re: Telekom VOIP "Ich höre den Gesprächspartner nicht"

Beitrag von sharbich » Mi 13. Nov 2019, 20:55

Hallo Ihr Lieben,

ich vermute das meine zwei iptables Regeln nicht passen?

Code: Alles auswählen

iptables -t raw -A OUTPUT -p udp -m udp --sport 5070 -j CT --helper sip
iptables -t raw -A PREROUTING -p udp -m udp --dport 5070 -j CT --helper sip
Lieben Gruß von Stefan

sharbich
Anfänger
Beiträge: 4
Registriert: Do 3. Okt 2019, 16:04

Re: Telekom VOIP "Ich höre den Gesprächspartner nicht"

Beitrag von sharbich » Do 14. Nov 2019, 00:09

Hallo Ihr Lieben,

ich konnte das Thema selbst lösen. Es waren in der Tat die iptabels Regeln. Folgende Regeln führten zum Erfolg.

Code: Alles auswählen

iptables -t nat -I PREROUTING -i eth2 -p udp -m udp --dport 30000:30099 -j DNAT --to-destination 192.168.140.20
iptables -t nat -I PREROUTING -i eth2 -p udp -m udp --dport 5070 -j DNAT --to-destination 192.168.140.20
Wobei ich im OpenWrt Router auch folgendes Modul nicht laden musste.

Code: Alles auswählen

root@rome01:~# cat /etc/sysctl.conf
## net.netfilter.nf_conntrack_helper=1
Ich hoffe ich konnte den einen oder anderen erfolgreiche Tipps geben?

Lieben Gruß von Stefan

Antworten