Your contact header looks wrong. Hint: look in the oracle sbc ms teams docs.
On Thu, 7 May 2020, 18:24 James Hogbin, <[email protected]> wrote: > My set up > > Teams <—> sbc.ip-sentinel.com <—> pbx.ip-sentinel.com > > I can create a call with audio from Teams -> PBX > I can hang up that call from Teams but not the PBX > I cannot route a call from PBX to teams. Although the initial TLS > handshake does happen > > I’m pretty sure it’s something basic to do with headers on ACK & BYE but I > just cannot spot what I’ve done wrong > > This is the initial outbound message from opensips to teams which looks OK > > *James Hogbin* > *Director* > [image: IP Sentinel Logo] <http://ip-sentinel.com> > t. +44 (0)20 3011 4150 <+442030114150> > m. +44 7786910895 > w. https://www.ip-sentinel.com > > > INVITE sip:[email protected]:5061;transport=tls > SIP/2.0 > Record-Route: <sip:sbc.ip-sentinel.com:5091 > ;transport=tls;ftag=eect23Z290N9p;lr;r2=on> > Record-Route: <sip:137.117.136.143:5060;ftag=eect23Z290N9p;lr;r2=on> > Via: SIP/2.0/TLS 137.117.136.143:5091 > ;branch=z9hG4bK48f8.81967713.0;i=e67586f7 > Via: SIP/2.0/TLS 13.80.245.144:5081 > ;rport=41795;received=10.0.0.4;branch=z9hG4bKac61XQKeXDXHB > Max-Forwards: 68 > From: "James Hogbin" <sip:[email protected]:5091>;tag=eect23Z290N9p > To: <sip:[email protected]:5091> > Call-ID: 0109ad37-0b1f-1239-bdba-000d3aada04e > CSeq: 19879884 INVITE > Contact: <sip:[email protected]:5081 > ;transport=tls;transport=tls;gw=c6ff36e8-d3de-4fe0-9f1b-9da2888c43a9> > User-Agent: FreeSWITCH > Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, > REFER, NOTIFY > Supported: timer, path, replaces > Allow-Events: talk, hold, conference, refer > Content-Type: application/sdp > Content-Disposition: session > Content-Length: 1339 > X-FS-Support: update_display,send_info > Remote-Party-ID: "James Hogbin" <sip:[email protected]:5091 > >;party=calling;screen=yes;privacy=off > #015 > v=0 > o=FreeSWITCH 1588835231 1588835232 IN IP4 137.117,136.143 > s=FreeSWITCH > c=IN IP4 137.117,136.143 > t=0 0 > m=audio 10432 RTP/SAVP 9 0 8 101 13 > a=rtpmap:9 G722/8000 > a=rtpmap:0 PCMU/8000 > a=rtpmap:8 PCMA/8000 > a=rtpmap:101 telephone-event/8000 > a=fmtp:101 0-16 > a=rtpmap:13 CN/8000 > [stuff removed] > a=ptime:20 > m=audio 13446 RTP/AVP 9 0 8 101 13 > a=rtpmap:9 G722/8000 > a=rtpmap:0 PCMU/8000 > a=rtpmap:8 PCMA/8000 > a=rtpmap:101 telephone-event/8000 > a=fmtp:101 0-16 > a=rtpmap:13 CN/8000 > a=ptime:20 > a=nortpproxy:yes > > opensips.cfg Source_address(0) is my PBX address= > > alias = tls:sbc.ip-sentinel.com:5091 > alias = udp:sbc.ip-sentinel.com:5060 > alias = tcp:sbc.ip-sentinel.com:5060 > advertised_address=137.117.136.143 > listen=udp:10.0.0.5:5060 > listen=tcp:10.0.0.5:5060 > listen=tls:10.0.0.5:5091 > > ####### Routing Logic ######## > > # main request routing logic > > route{ > #xlog("L_INFO", "route SIP Message $mb"); > force_rport(); > > if (!mf_process_maxfwd_header(10)) { > send_reply(483,"Too Many Hops"); > exit; > } > > if (is_method("OPTIONS")) { > #xlog("[MS TEAMS] OPTIONS In\n"); > send_reply(200, "OK"); > exit; > } > > # CANCEL processing > if (is_method("CANCEL")) { > if (t_check_trans()) > t_relay(); > exit; > } > > # absorb retransmissions, but do not create transaction > t_check_trans(); > > if (has_totag()) { > > # sequential request within a dialog should > # take the path determined by record-routing > > if(is_method("INVITE") && !check_source_address(0)) { > xlog("[INFO] In dialog Method=$rm, RURI=$ruri, SI=$si ,DU=$du\n"); > t_relay(); > } > if ( !loose_route() ) { > # we do record-routing for all our traffic, so we should not > # receive any sequential requests without Route hdr. > send_reply(404, "Not here"); > exit; > } > # route it out to whatever destination was set by loose_route() > # in $du (destination URI). > route(relay); > exit; > } > > # account only INVITEs > if (is_method("INVITE")) { > do_accounting("log"); > } > > if (is_method("INVITE") && !has_totag() && check_source_address(0)) { > xlog("[ROUTE]Incoming call to MS: RURI=$ruri, SI=$si, M=$rm\n"); > strip(1); > prefix("+44"); > record_route_preset("sbc.ip-sentinel.com:5091;transport=tls", " > 137.117.136.143:5060"); > add_rr_param(";r2=on"); > $rd="sip.pstnhub.microsoft.com"; > $rp=5061; > route(relay); > } else if (is_method("INVITE") && ! has_totag() && > !check_source_address(0)) { > record_route(); > xlog("[ROUTE]Incoming call from MS: RURI=$ruri, SI=$si, M=$rm\n"); > $rd="pbx.ip-sentinel.com"; > $rp=5081; > route(relay); > } > > if (!is_myself("$rd")) { > append_hf("P-hint: outbound\r\n"); > route(relay); > } > > # requests for my domain > if (is_method("PUBLISH|SUBSCRIBE")) { > send_reply(503, "Service Unavailable"); > exit; > } > > if ($rU==NULL) { > # request with no Username in RURI > send_reply(484,"Address Incomplete"); > exit; > } > > # do lookup with method filtering > if (!lookup("location","m")) { > t_reply(404, "Not Found"); > exit; > } > > # when routing via usrloc, log the missed calls also > do_accounting("log","missed"); > route(relay); > } > > route[relay] { > xlog("[INFO] route[relay] SIP Message \n$mb\n"); > # for INVITEs enable some additional helper routes > if (is_method("INVITE") && ! has_totag() ) { > > t_newtran(); > t_on_reply("handle_nat"); > t_on_failure("missed_call"); > > # if we have an application/sdp on our body, so we execute > # the rtpproxy_offer > if(has_body("application/sdp")){ > xlog("[RTPPROXY] route[relay] we have sdp on this message\n$rm\n"); > rtpproxy_offer("co", "137.117,136.143"); > } > > } > > xlog("[INFO] Method=$rm, RURI=$ruri, SI=$si ,DU=$du\n"); > if (!t_relay()) { > send_reply(500,"Internal Error"); > } > exit; > } > > onreply_route[handle_nat] { > xlog("[INFO] onreply_route[handle_nat]: RR=$rr, RS=$rs, SI=$si\n$mb\n"); > # we receive a reply, we need to check about application/sdp > # on our body, if we have, we answer that > if(is_method("ACK") && has_body("application/sdp")){ > xlog("[RTPPROXY] onreply_route[handle_nat] ACK rtpproxy_answer\n"); > rtpproxy_answer("co", "137.117,136.143"); > } > } > > failure_route[missed_call] { > if (t_was_cancelled()) { > exit; > } > } > > local_route { > $var(dst) = "pstnhub.microsoft.com"; > if (is_method("OPTIONS") && ($(ru{s.index, $var(dst)}) != NULL)) { > append_hf("Contact: <sip:sbc.ip-sentinel.com:5091;transport=tls>\r\n"); > #xlog("[MS TEAMS] OPTIONS Out\n"); > } > } > > IP Sentinel Disclaimer > The information contained in this e-mail, and any attachment, is > confidential and is intended solely for the use of the intended recipient. > Access, copying or re-use of the e-mail or any attachment, or any > information contained therein, by any other person is not authorized. > Unintended recipients are prohibited from taking action on the basis of > information in this e-mail. If you are not the intended recipient or have > received this email in error, please notify the sender immediately by > return email and delete the email from your computer. E-mail messages may > contain computer viruses or other defects, may not be accurately replicated > on other systems, or may be intercepted, deleted or interfered with without > the knowledge of the sender or the intended recipient. We do not guarantee > that either are virus-free and accept no liability for any damage sustained > as a result of computer viruses or other defects. . IP Sentinel Ltd is a > limited company registered in England and Wales under Registered Number > 08648097. Registered Office: Newnhams Wood, Horsted Keynes, West Sussex, > RH17 7BT. > Q3dhRSrm_disclaimer > _______________________________________________ > Users mailing list > [email protected] > http://lists.opensips.org/cgi-bin/mailman/listinfo/users >
_______________________________________________ Users mailing list [email protected] http://lists.opensips.org/cgi-bin/mailman/listinfo/users
