{"id":194,"date":"2010-03-09T22:22:09","date_gmt":"2010-03-09T21:22:09","guid":{"rendered":"http:\/\/lendl.priv.at\/blog\/?p=194"},"modified":"2026-01-26T12:15:36","modified_gmt":"2026-01-26T11:15:36","slug":"a-response-to-draft-malas-dispatch-sip-egress-route-00","status":"publish","type":"post","link":"https:\/\/lendl.priv.at\/blog\/2010\/03\/09\/a-response-to-draft-malas-dispatch-sip-egress-route-00\/","title":{"rendered":"A response to draft-malas-dispatch-sip-egress-route-00"},"content":{"rendered":"<p>On 09.03.2010 18:27, Dean Willis wrote on the IETF dispatch list:<\/p>\n<blockquote><p>I definitely see the need for defining a method by which to inform nodes inside an ITAD of egress routes from that ITAD to other domains. I think that most of the people who have responded on this thread agree that there is such a need.\n<\/p><\/blockquote>\n<p>Yes, there is.<\/p>\n<blockquote><p>Where we have a disagreement is on mechanism. While your proposed use of ITAD-specific private ENUM  servers is not completely inconsistent with recent trends in ENUM, I have to say we&#8217;ve done a lot of things in ENUM that I don&#8217;t like, and this is pushing the envelope further in that direction.\n<\/p><\/blockquote>\n<p>As I see the problem space, we&#8217;re conflating two independent problems:<\/p>\n<p>a) how is routing-information exchanged between SSPs?<\/p>\n<p>Here we have one approach which favors registries which digest routing-information and spit out suitable database dumps for provisioning the SSPs boxes. The other approach is to get some real routing-protocol up and running between SSPs (like BGP4 for IP layer 3 routing).<\/p>\n<p>b) how is this routing-information conferred to the proxies\/SBCs\/&#8230; which do the actual SIP message processing \/ forwarding?<\/p>\n<p>Now, if these proxies are actually participating in a dynamic routing protocol (or receive full dumps from a routing registry), then b) is internal to the proxy. Just as there is no protocol for moving routes from the BGP table of a router to the actual packet forwarding engine, this is purely internal to the box.<\/p>\n<p>If, on the other hand, some entity distinct from the actual SIP devices handles the routing information (either by talking to a registry, or by running a dynamic routing protocol), then the SIP device needs a protocol to query that routing-oracle on what to do with a given call.<\/p>\n<p>It seems to me that this is what ENUM is increasingly used for within SSPs.<\/p>\n<p>IMHO this is the wrong protocol choice for this task.<\/p>\n<p>Why?<\/p>\n<p>* ENUM is a very simple DNS application. The only key to the lookup is the destination number, the only return value is an URL. (more or less)<\/p>\n<p>* If you look at a good number of recent drafts you notice that people feel that this is not enough: they need &#8220;ID of the SIP device&#8221; or &#8220;caller-ID&#8221; in the query, and a sh*tload of URI-parameters (trunk-id, &#8230;) in the answer. See draft-mayrhofer-drinks-sed-elements for further data that might need to get stuffed into an ENUM response.<\/p>\n<p>ENUM was never intended as call-control protocol where a proxy outsources its complete routing intelligence to an external party. It&#8217;s a simple key->URI directory lookup. The LRF (RFC 3263) and the intelligence was supposed to be within the SIP proxy.<\/p>\n<p>Now, what we need here is something closer to RADIUS than to ENUM: a protocol where the SIP device can pack up all the information it has about the SIP INVITE into one request to the routing-oracle which then answers with a details set of parameters (the SED) on what the stupid proxy is<br \/>\nsupposed to do now.<\/p>\n<p>Trying to expand ENUM into doing just that is bound to fail.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>On 09.03.2010 18:27, Dean Willis wrote on the IETF dispatch list: I definitely see the need for defining a method by which to inform nodes inside an ITAD of egress routes from that ITAD to other domains. I think that most of the people who have responded on this thread agree that there is such [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-194","post","type-post","status-publish","format-standard","hentry","category-ietf"],"_links":{"self":[{"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/posts\/194","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/comments?post=194"}],"version-history":[{"count":1,"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/posts\/194\/revisions"}],"predecessor-version":[{"id":940,"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/posts\/194\/revisions\/940"}],"wp:attachment":[{"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/media?parent=194"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/categories?post=194"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lendl.priv.at\/blog\/wp-json\/wp\/v2\/tags?post=194"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}