Summary: | ASTERISK-28775: SRV fix for ASTERISK-28746 fails with Deutsche Telecom | ||||
Reporter: | Michael Maier (micha) | Labels: | fax | ||
Date Opened: | 2020-03-09 07:11:19 | Date Closed: | |||
Priority: | Major | Regression? | |||
Status: | Open/New | Components: | Resources/res_pjsip_outbound_registration | ||
Versions: | 16.9.0 | Frequency of Occurrence | |||
Related Issues: |
| ||||
Environment: | Attachments: | ||||
Description: | I just tested the new version 16.9.0.rc1 and promptly got an error with this patch. With Deutsche Telekom, you always get a SRV record set. On the other hand, you mostly have to register 3 numbers - each must be registered on its own - to the same destination. Therefore, on startup, there are 3 registers done to the same destination. Often, one of the three numbers fails to register on the first attempt and therefore, it is done twice.
With this patch, you're now using the second of usually 3 SRV entries and registration is done successfully (which would have worked too, if you would have used the first entry again, because it's just a very temporary problem) - but all succeeding calls (outgoing INVITEs) are now rejected (403 Forbidden), because they are going to the first entry of the SRV record set - which fails on Deutsche Telekom, because they await all subsequent actions to be done at the same server as the registration was done. Therefore, this patch is a no go for all users of Deutsche Telekom or any other provider relying on all actions to be done to always the same destination IP. Therefore, please make this new feature switchable or add another feature, which takes care to always use the same destination IP as initially used for the registration. You have to take care, too, that there is more than one number at the same time - but all of them using the same destination SRV hostname, but they could have different IP addresses - but each number must use its own IP which was initially used for the register. | ||||
Comments: | By: George Joseph (gjoseph) 2020-03-09 07:24:34.549-0500 Michael, Can you give me more info so I can create a test scenario for this? endpoint, aor(s), registrations, and identifys. By: Michael Maier (micha) 2020-03-09 10:59:29.120-0500 Some more information: That's what you get for SRV from DNS: dig +noall +answer _sips._tcp.tel.t-online.de SRV _sips._tcp.tel.t-online.de. 767 IN SRV 20 0 5061 d-eps-100.edns.t-ipnet.de. _sips._tcp.tel.t-online.de. 767 IN SRV 10 0 5061 hh-eps-110.edns.t-ipnet.de. _sips._tcp.tel.t-online.de. 767 IN SRV 30 0 5061 h2-eps-100.edns.t-ipnet.de. Following, you can find 3 accounts (numbers), which all have to be registered individually. Strictly speaking, it's one account, which registers 3 (or even more) numbers. They are all registered to tel.t-online.de. After registration, you have to take care, that all subsequent actions (like OPTIONS, INVITE, ...) must be sent to the same server you initially registered to. The identification (and therefore the assignment to the correct trunk) of incoming calls is done via line option. Registering to d-eps-100.edns.t-ipnet.de but sending an INVITE for an outgoing call later on to hh-eps-110.edns.t-ipnet.de fails, because hh-eps-110.edns.t-ipnet.de doesn't know anything about the registration to d-eps-100.edns.t-ipnet.de. This wasn't any problem so far, because the Deutsche Telekom servers have been rock stable over many years now. pjsip.aor.conf: [telekomPJSIP-890] type=aor qualify_frequency=240 contact=sip:+491234567890@tel.t-online.de [telekomPJSIP-141] type=aor qualify_frequency=240 contact=sip:+4924681012141@tel.t-online.de [telekomPJSIP-821] type=aor qualify_frequency=240 contact=sip:+4936912151821@tel.t-online.de pjsip.auth.conf: [telekomPJSIP-890] type=auth auth_type=userpass password=secret username=+491234567890 [telekomPJSIP-141] type=auth auth_type=userpass password=secret username=+4924681012141 [telekomPJSIP-821] type=auth auth_type=userpass password=secret username=+4936912151821 pjsip.endpoint.conf: [telekomPJSIP-890] type=endpoint transport=0.0.0.0-tls context=from-pstn disallow=all allow=g722,alaw,ulaw aors=telekomPJSIP-890 send_connected_line=yes language=de outbound_auth=telekomPJSIP-890 from_domain=tel.t-online.de from_user=+491234567890 contact_user=+491234567890 t38_udptl=no t38_udptl_ec=none fax_detect=no trust_id_inbound=no t38_udptl_nat=no direct_media=no rewrite_contact=yes media_encryption=sdes rtp_symmetric=yes dtmf_mode=rfc4733 [telekomPJSIP-141] type=endpoint transport=0.0.0.0-tls context=from-pstn disallow=all allow=alaw,ulaw aors=telekomPJSIP-141 send_connected_line=false language=de outbound_auth=telekomPJSIP-141 from_domain=tel.t-online.de from_user=+4924681012141 contact_user=+4924681012141 t38_udptl=no t38_udptl_ec=none fax_detect=no trust_id_inbound=no t38_udptl_nat=no direct_media=no rewrite_contact=yes media_encryption=sdes rtp_symmetric=yes dtmf_mode=rfc4733 [telekomPJSIP-821] type=endpoint transport=0.0.0.0-tls context=from-pstn disallow=all allow=alaw,ulaw aors=telekomPJSIP-821 send_connected_line=false language=de outbound_auth=telekomPJSIP-821 from_domain=tel.t-online.de from_user=+4936912151821 contact_user=+4936912151821 t38_udptl=no t38_udptl_ec=none fax_detect=no trust_id_inbound=no t38_udptl_nat=no direct_media=no rewrite_contact=yes media_encryption=sdes rtp_symmetric=yes dtmf_mode=rfc4733 pjsip.registration.conf: [telekomPJSIP-890] type=registration transport=0.0.0.0-tls outbound_auth=telekomPJSIP-890 retry_interval=60 fatal_retry_interval=0 forbidden_retry_interval=10 max_retries=10000 expiration=660 line=yes endpoint=telekomPJSIP-890 auth_rejection_permanent=yes contact_user=+491234567890 server_uri=sip:tel.t-online.de client_uri=sip:+491234567890@tel.t-online.de [telekomPJSIP-141] type=registration transport=0.0.0.0-tls outbound_auth=telekomPJSIP-141 retry_interval=60 fatal_retry_interval=0 forbidden_retry_interval=10 max_retries=10000 expiration=660 line=yes endpoint=telekomPJSIP-141 auth_rejection_permanent=yes contact_user=+4924681012141 server_uri=sip:tel.t-online.de client_uri=sip:+4924681012141@tel.t-online.de [telekomPJSIP-821] type=registration transport=0.0.0.0-tls outbound_auth=telekomPJSIP-821 retry_interval=60 fatal_retry_interval=0 forbidden_retry_interval=10 max_retries=10000 expiration=660 line=yes endpoint=telekomPJSIP-821 auth_rejection_permanent=yes contact_user=+4936912151821 server_uri=sip:tel.t-online.de client_uri=sip:+4936912151821@tel.t-online.de pjsip.identify.conf [telekomPJSIP-890] type=identify endpoint=telekomPJSIP-890 match=127.0.0.10 [telekomPJSIP-141] type=identify endpoint=telekomPJSIP-141 match=127.0.0.10 [telekomPJSIP-821] type=identify endpoint=telekomPJSIP-821 match=127.0.0.10 |