[OpenSIPS-Users] OpenSIPS as Teams SBC

Johan De Clercq Johan at democon.be
Thu May 7 18:12:58 EST 2020


Your contact header looks wrong. Hint: look in the oracle sbc ms teams docs.

On Thu, 7 May 2020, 18:24 James Hogbin, <james at ip-sentinel.com> 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:+448435577721 at sip.pstnhub.microsoft.com: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:opensips at 10.0.0.5:5091>;tag=eect23Z290N9p
> To: <sip:08435577721 at 10.0.0.5:5091>
> Call-ID: 0109ad37-0b1f-1239-bdba-000d3aada04e
> CSeq: 19879884 INVITE
> Contact: <sip:gw+c6ff36e8-d3de-4fe0-9f1b-9da2888c43a9 at 13.80.245.144: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:+442030114146 at 10.0.0.5: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
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20200507/22d9c807/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 120050717211700129.png
Type: image/png
Size: 3317 bytes
Desc: not available
URL: <http://lists.opensips.org/pipermail/users/attachments/20200507/22d9c807/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 120050717211700129.png
Type: image/png
Size: 3317 bytes
Desc: not available
URL: <http://lists.opensips.org/pipermail/users/attachments/20200507/22d9c807/attachment-0003.png>


More information about the Users mailing list