{"id":990,"date":"2020-06-10T05:18:35","date_gmt":"2020-06-09T22:18:35","guid":{"rendered":"https:\/\/www.otakudang.org\/?p=990"},"modified":"2021-02-23T06:40:35","modified_gmt":"2021-02-22T23:40:35","slug":"complete-issabel-configs-for-msteams-direct-routing","status":"publish","type":"post","link":"https:\/\/www.otakudang.org\/?p=990","title":{"rendered":"Complete Issabel Configs for MSTeams Direct Routing"},"content":{"rendered":"\n<p>Related to previous post about how to setup <a href=\"https:\/\/www.otakudang.org\/?p=969\">Issabel as Direct Routing SBC to MSTeams<\/a>,I got requests from acquintances about the complete configurations from Issabel side. <\/p>\n\n\n\n<p>So here they are:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">sip_custom.conf (modify this from Asterisk File Editor webGUI)<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[MSTeams-Inbound]\ndisallow=all\nhost=sip.pstnhub.microsoft.com\ntype=friend\ntransport=tls\nport=5061\nallow=all\nallow=ulaw\nqualify=yes\ndtmfmode=rfc2833\ncontext=from-internal\ninsecure=port,invite\nnat=force_rport,comedia\nfromdomain=ast.ofon.biz\n\n[MSTeams02-Inbound]\ndisallow=all\nhost=sip2.pstnhub.microsoft.com\ntype=friend\ntransport=tls\nport=5061\nallow=all\nallow=ulaw\nqualify=yes\ndtmfmode=rfc2833\ncontext=from-internal\ninsecure=port,invite\nnat=force_rport,comedia\nfromdomain=ast.ofon.biz\n\n[MSTeams03-Inbound]\ndisallow=all\nhost=sip3.pstnhub.microsoft.com\ntype=friend\ntransport=tls\nport=5061\nallow=all\nallow=ulaw\nqualify=yes\ndtmfmode=rfc2833\ncontext=from-internal\ninsecure=port,invite\nnat=force_rport,comedia\nfromdomain=ast.ofon.biz\n\n[Carrier-Inbound]\ndisallow=all\nhost=xxx.xxx.xxx.xxx\ntype=friend\nport=xxxx\nallow=all\nallow=ulaw\nqualify=yes\ndtmfmode=rfc2833\ncontext=from-internal\ninsecure=port,invite\nnat=force_rport,comedia\n<\/pre>\n\n\n\n<p>replace xxx are Carrier ip address, and port. replace fromdomain with your own FQDN Issabel server. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">sip_additional.conf (modify this from Trunk webGUI menu)<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[MSTeams-Outbound]\ndisallow=all\nhost=sip.pstnhub.microsoft.com\ntype=peer\ntransport=tls\nport=5061\nallow=all\nallow=ulaw\nqualify=yes\ndtmfmode=rfc2833\ncontext=from-trunk\ninsecure=port,invite\nnat=force_rport,comedia\nfromdomain=ast.ofon.biz\nencryption=yes\n\n[MSTeams02-Outbound]\ndisallow=all\nhost=sip.pstnhub.microsoft.com\ntype=peer\ntransport=tls\nport=5061\nallow=all\nallow=ulaw\nqualify=yes\ndtmfmode=rfc2833\ncontext=from-trunk\ninsecure=port,invite\nnat=force_rport,comedia\nfromdomain=ast.ofon.biz\nencryption=yes\n\n[MSTeams03-Outbound]\ndisallow=all\nhost=sip3.pstnhub.microsoft.com\ntype=peer\ntransport=tls\nport=5061\nallow=all\nallow=ulaw\nqualify=yes\ndtmfmode=rfc2833\ncontext=from-trunk\ninsecure=port,invite\nnat=force_rport,comedia\nfromdomain=ast.ofon.biz\nencryption=yes\n\n[Carrier-Outbound]\nhost=xxx.xxx.xxx.xxx\nport=xxxx\ncanreinvite=yes\ntype=peer\ninsecure=port,invite\nnat=force_rport,comedia\ncontext=from-trunk\nqualify=yes\ndtmfmode=rfc2833\n<\/pre>\n\n\n\n<p>replace xxx are Carrier ip address, and port. replace fromdomain with your own FQDN Issabel server.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Outbound to MSTeams DID<\/h3>\n\n\n\n<p>I created 3 outbounds route with this order:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Outbound to MSTeams<\/li><li>Outbound to Carrier for REFER<\/li><li>Outbound to Carrier for each DID<\/li><\/ul>\n\n\n\n<p>The order should as such. And you dont need to setup any Inbound Routes. <\/p>\n\n\n\n<p>Outbound route to MSTeams should contain your assigned DIDs toward MSTeams account. Should look like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"703\" height=\"619\" src=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image.png\" alt=\"\" class=\"wp-image-991\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image.png 703w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-300x264.png 300w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Outbound Route to Accomodate REFER<\/h3>\n\n\n\n<p>Since I dont know how to replace user part of the URI with RPID, I just pick one DID to accomodate REFER. This is less desireable but the REFER outbound route can act as Global CallerID for the direct routing. Notice that the route contains disposable prefix 9 to avoid overriding from 3rd route (i.e Route for each DID).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-2.png\" alt=\"This image has an empty alt attribute; its file name is image-2.png\"\/><figcaption><br><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Outbound Route to Carrier for Each DID<\/h3>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"703\" height=\"482\" src=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-1.png\" alt=\"\" class=\"wp-image-992\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-1.png 703w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-1-300x206.png 300w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">(extra) Asterisk SIP Settings from Unembedded IssabelPBX menu<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"300\" src=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-4.png\" alt=\"\" class=\"wp-image-995\" srcset=\"https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-4.png 813w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-4-300x111.png 300w, https:\/\/www.otakudang.org\/wp-content\/uploads\/2020\/06\/image-4-768x283.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/figure>\n\n\n\n<p>Point the <em>tlsprivatekey<\/em>, <em>tlscertfile<\/em>, and <em>tlscafile <\/em>to your approriate files. And <em>realm<\/em> should be the Issabel server&#8217;s FQDN. The <em>tlsbindaddr<\/em> can by any ip address and port you wish to use. <\/p>\n\n\n\n<p>That should do it. If I miss anything, please clue me at the comment. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Related to previous post about how to setup Issabel as Direct Routing SBC to MSTeams,I got requests from acquintances about the complete configurations from Issabel side. So here they are: sip_custom.conf (modify this from Asterisk File Editor webGUI) replace xxx are Carrier ip address, and port. replace fromdomain with your own FQDN Issabel server. sip_additional.conf &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.otakudang.org\/?p=990\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Complete Issabel Configs for MSTeams Direct Routing&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,16],"tags":[],"class_list":["post-990","post","type-post","status-publish","format-standard","hentry","category-asterisk","category-msteams","entry"],"_links":{"self":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/990","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=990"}],"version-history":[{"count":5,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/990\/revisions"}],"predecessor-version":[{"id":1051,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=\/wp\/v2\/posts\/990\/revisions\/1051"}],"wp:attachment":[{"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=990"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=990"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.otakudang.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=990"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}