Skip to content

Commit e407ddf

Browse files
authored
Merge pull request #247893 from boris-bazilevskiy/doc-update-0823
update SIP OPTIONS logic
2 parents 4e54f35 + 2d45d74 commit e407ddf

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed
Loading

articles/communication-services/concepts/telephony/monitoring-troubleshooting-telephony/monitor-direct-routing.md

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,34 @@ Microsoft is working on providing more tools for troubleshooting and monitoring.
2626

2727
## Monitoring availability of Session Border Controllers using Session Initiation Protocol (SIP) OPTIONS messages
2828

29-
Azure Communication Services direct routing uses SIP OPTIONS sent by the Session Border Controller to monitor SBC health. There are no actions required from the Azure administrator to enable the SIP OPTIONS monitoring.
29+
Azure Communication Services direct routing uses SIP OPTIONS sent by the Session Border Controller to monitor SBC health. There are no actions required from the Azure administrator to enable the SIP OPTIONS monitoring. The collected information is taken into consideration when routing decisions are made.
30+
31+
For example, if there are several SBCs available to route a call, direct routing considers the SIP OPTIONS information received from each SBC to determine routing.
32+
33+
Here's an example of the configuration:
34+
35+
![[Screenshot showing SIP options configuration example.](../../media/monitoring-troubleshooting-telephony/sip-options-config-routing.png)](../../media/monitoring-troubleshooting-telephony/sip-options-config-routing.png#lightbox)
36+
37+
When an Azure Communication Services SDK app makes a call to number +1 425 \<any seven digits>, direct routing evaluates the route. There are two SBCs in the route: `sbc.contoso.com` and `sbc2.contoso.com`. Both SBCs have equal priority in the route. Before picking an SBC, the routing mechanism evaluates the health of each SBC, based on when the SBC sent the SIP OPTIONS last time.
38+
39+
An SBC is considered healthy if statistics at the moment of sending the call shows that the SBC sends OPTIONS every minute.
40+
41+
When a call is made, the following logic applies:
42+
43+
- The SBC was paired at 10:00 AM.
44+
- The SBC sends OPTIONS at 10:01 AM, 10:02 AM, and so on.
45+
- At 10:15, a user makes a call and the routing mechanism selects this SBC.
46+
47+
Direct routing takes the regular interval OPTIONS three times (the regular interval is one minute). If OPTIONS were sent during the last three minutes, the SBC is considered healthy.
48+
49+
If the SBC in the example sent OPTIONS at any period between 11:12 AM and 11:15 AM (the time the call was made), it's considered healthy. If not, the SBC is demoted from the route.
50+
51+
Demotion means that the SBC isn't tried first. For example, we have `sbc.contoso.com` and `sbc2.contoso.com` with equal priority in the same voice route.
52+
53+
If `sbc.contoso.com` doesn't send SIP OPTIONS on a regular interval as previously described, it's demoted. Next, `sbc2.contoso.com` tries for the call. If `sbc2.contoso.com` can't deliver the call because of the error codes 408, 503, or 504, the `sbc.contoso.com` (demoted) is tried again before a failure is generated.
54+
If both `sbc.contoso.com` and `sbc2.contoso.com` don't send OPTIONS, direct routing tries to place a call to both anyway, and then `sbc3.contoso.com` is tried.
55+
56+
If two (or more) SBCs in one route are considered healthy and equal, Fisher-Yates shuffle is applied to distribute the calls between the SBCs.
3057

3158
## Monitor with Azure portal and SBC logs
3259

0 commit comments

Comments
 (0)