~aleteoryx/muditaos

ref: b95894a8abc10cddf0b58dda4b2569b01eec0d7e muditaos/module-services/service-cellular/doc/call_request_handling.svg -rw-r--r-- 21.0 KiB
b95894a8 — Lefucjusz [MOS-1064] Fix no input language selected for French/Spanish 1 year, 9 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="964px" preserveAspectRatio="none" style="width:1002px;height:964px;background:#F0F0F0;" version="1.1" viewBox="0 0 1002 964" width="1002px" zoomAndPan="magnify"><defs><filter height="300%" id="fq80hqptrwjfg" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><rect fill="#FFFFFF" filter="url(#fq80hqptrwjfg)" height="808.0938" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="166" y="69.4297"/><rect fill="#FFFFFF" filter="url(#fq80hqptrwjfg)" height="538.8984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="402" y="98.5625"/><rect fill="#FFFFFF" filter="url(#fq80hqptrwjfg)" height="116.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="635" y="790.125"/><rect fill="#FFFFFF" filter="url(#fq80hqptrwjfg)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="775" y="819.2578"/><rect fill="#F0F0F0" filter="url(#fq80hqptrwjfg)" height="164.6328" style="stroke: #000000; stroke-width: 2.0;" width="588" x="102" y="155.6953"/><rect fill="#F0F0F0" height="73.0703" style="stroke: none; stroke-width: 1.0;" width="588" x="102" y="247.2578"/><rect fill="#F0F0F0" filter="url(#fq80hqptrwjfg)" height="148.6641" style="stroke: #000000; stroke-width: 2.0;" width="608" x="92" y="334.3281"/><rect fill="#F0F0F0" filter="url(#fq80hqptrwjfg)" height="75.3984" style="stroke: #000000; stroke-width: 2.0;" width="588" x="102" y="400.5938"/><rect fill="#F0F0F0" filter="url(#fq80hqptrwjfg)" height="148.4688" style="stroke: #000000; stroke-width: 2.0;" width="588" x="102" y="496.9922"/><rect fill="#F0F0F0" height="73.0703" style="stroke: none; stroke-width: 1.0;" width="588" x="102" y="572.3906"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="171" x2="171" y1="38.2969" y2="924.6563"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="406.5" x2="406.5" y1="38.2969" y2="924.6563"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="640" x2="640" y1="205.4766" y2="924.6563"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="780" x2="780" y1="38.2969" y2="924.6563"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 5.0,5.0;" x1="931" x2="931" y1="38.2969" y2="924.6563"/><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="112" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="100" x="119" y="22.9951">ServiceCellular</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="114" x="112" y="923.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="100" x="119" y="943.6514">ServiceCellular</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="343.5" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="109" x="350.5" y="22.9951">RequestFactory</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="123" x="343.5" y="923.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="109" x="350.5" y="943.6514">RequestFactory</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="600" y="923.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="62" x="607" y="943.6514">IRequest</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="176" x="690" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="162" x="697" y="22.9951">CellularRequestHandler</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="176" x="690" y="923.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="162" x="697" y="943.6514">CellularRequestHandler</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="880" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="887" y="22.9951">DLCChannel</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="880" y="923.6563"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="887" y="943.6514">DLCChannel</text><rect fill="#FFFFFF" filter="url(#fq80hqptrwjfg)" height="808.0938" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="166" y="69.4297"/><rect fill="#FFFFFF" filter="url(#fq80hqptrwjfg)" height="538.8984" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="402" y="98.5625"/><rect fill="#FFFFFF" filter="url(#fq80hqptrwjfg)" height="116.5313" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="635" y="790.125"/><rect fill="#FFFFFF" filter="url(#fq80hqptrwjfg)" height="29.1328" style="stroke: #A80036; stroke-width: 1.0;" width="10" x="775" y="819.2578"/><polygon fill="#A80036" points="154,65.4297,164,69.4297,154,73.4297,158,69.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="56" x2="160" y1="69.4297" y2="69.4297"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="96" x="63" y="64.3638">call request</text><polygon fill="#A80036" points="390,94.5625,400,98.5625,390,102.5625,394,98.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="176" x2="396" y1="98.5625" y2="98.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="183" y="93.4966">Create</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="412" x2="454" y1="127.6953" y2="127.6953"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="454" x2="454" y1="127.6953" y2="140.6953"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="413" x2="454" y1="140.6953" y2="140.6953"/><polygon fill="#A80036" points="423,136.6953,413,140.6953,423,144.6953,419,140.6953" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="419" y="122.6294">emergencyCheck()</text><path d="M102,155.6953 L166,155.6953 L166,162.6953 L156,172.6953 L102,172.6953 L102,155.6953 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="164.6328" style="stroke: #000000; stroke-width: 2.0;" width="588" x="102" y="155.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="19" x="117" y="168.7622">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="178" x="181" y="167.9058">[is emergency and allowed]</text><path d="M695,160.6953 L695,200.6953 L948,200.6953 L948,170.6953 L938,160.6953 L695,160.6953 " fill="#FBFB77" filter="url(#fq80hqptrwjfg)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M938,160.6953 L938,170.6953 L948,170.6953 L938,160.6953 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="232" x="701" y="177.7622">decision depends on the emergency</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="224" x="701" y="192.895">number itself and state of SIM card</text><polygon fill="#A80036" points="588,189.9609,598,193.9609,588,197.9609,592,193.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="412" x2="594" y1="193.9609" y2="193.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="419" y="188.895">&lt;&lt;create CallRequest&gt;&gt;</text><rect fill="#FEFECE" filter="url(#fq80hqptrwjfg)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="76" x="600" y="172.8281"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="62" x="607" y="192.8232">IRequest</text><polygon fill="#A80036" points="187,235.2578,177,239.2578,187,243.2578,183,239.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="181" x2="401" y1="239.2578" y2="239.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="186" x="193" y="234.1919">&lt;&lt;CallRequest : IRequest&gt;&gt;</text><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="102" x2="690" y1="248.2578" y2="248.2578"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="203" x="107" y="258.4683">[is emergency and not allowed]</text><polygon fill="#A80036" points="628,279.1953,638,283.1953,628,287.1953,632,283.1953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="412" x2="634" y1="283.1953" y2="283.1953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="419" y="278.1294">&lt;&lt;create RejectRequest&gt;&gt;</text><polygon fill="#A80036" points="187,308.3281,177,312.3281,187,316.3281,183,312.3281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="181" x2="401" y1="312.3281" y2="312.3281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="202" x="193" y="307.2622">&lt;&lt;RejectRequest : IRequest&gt;&gt;</text><path d="M92,334.3281 L169,334.3281 L169,341.3281 L159,351.3281 L92,351.3281 L92,334.3281 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="148.6641" style="stroke: #000000; stroke-width: 2.0;" width="608" x="92" y="334.3281"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="32" x="107" y="347.395">loop</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="98" x="184" y="346.5386">[request types]</text><line style="stroke: #A80036; stroke-width: 1.0;" x1="412" x2="454" y1="372.5938" y2="372.5938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="454" x2="454" y1="372.5938" y2="385.5938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="413" x2="454" y1="385.5938" y2="385.5938"/><polygon fill="#A80036" points="423,381.5938,413,385.5938,423,389.5938,419,385.5938" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="121" x="419" y="367.5278">&lt;&lt;regexmatch&gt;&gt;</text><path d="M102,400.5938 L166,400.5938 L166,407.5938 L156,417.5938 L102,417.5938 L102,400.5938 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="75.3984" style="stroke: #000000; stroke-width: 2.0;" width="588" x="102" y="400.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="19" x="117" y="413.6606">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="65" x="181" y="412.8042">[matched]</text><polygon fill="#A80036" points="628,434.8594,638,438.8594,628,442.8594,632,438.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="412" x2="634" y1="438.8594" y2="438.8594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="199" x="419" y="433.7935">&lt;&lt;create matched request&gt;&gt;</text><polygon fill="#A80036" points="187,463.9922,177,467.9922,187,471.9922,183,467.9922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="181" x2="401" y1="467.9922" y2="467.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="172" x="193" y="462.9263">&lt;&lt; matched : IRequest&gt;&gt;</text><path d="M102,496.9922 L166,496.9922 L166,503.9922 L156,513.9922 L102,513.9922 L102,496.9922 " fill="#EEEEEE" style="stroke: #000000; stroke-width: 1.0;"/><rect fill="none" height="148.4688" style="stroke: #000000; stroke-width: 2.0;" width="588" x="102" y="496.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="19" x="117" y="510.0591">alt</text><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="111" x="181" y="509.2026">[SIM not present]</text><polygon fill="#A80036" points="628,531.2578,638,535.2578,628,539.2578,632,535.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="412" x2="634" y1="535.2578" y2="535.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="180" x="419" y="530.1919">&lt;&lt;create RejectRequest&gt;&gt;</text><polygon fill="#A80036" points="187,560.3906,177,564.3906,187,568.3906,183,564.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="181" x2="401" y1="564.3906" y2="564.3906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="135" x="193" y="559.3247">&lt;&lt;RejectRequest&gt;&gt;</text><line style="stroke: #000000; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="102" x2="690" y1="573.3906" y2="573.3906"/><text fill="#000000" font-family="sans-serif" font-size="11" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="37" x="107" y="583.6011">[else]</text><polygon fill="#A80036" points="628,604.3281,638,608.3281,628,612.3281,632,608.3281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="412" x2="634" y1="608.3281" y2="608.3281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="164" x="419" y="603.2622">&lt;&lt;create CallRequest&gt;&gt;</text><polygon fill="#A80036" points="187,633.4609,177,637.4609,187,641.4609,183,637.4609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="181" x2="406" y1="637.4609" y2="637.4609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="119" x="193" y="632.395">&lt;&lt;CallRequest&gt;&gt;</text><polygon fill="#A80036" points="628,669.5938,638,673.5938,628,677.5938,632,673.5938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="176" x2="634" y1="673.5938" y2="673.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="75" x="183" y="668.5278">command()</text><polygon fill="#A80036" points="187,698.7266,177,702.7266,187,706.7266,183,702.7266" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="181" x2="639" y1="702.7266" y2="702.7266"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="109" x="193" y="697.6606">&lt;&lt;command&gt;&gt;</text><polygon fill="#A80036" points="919.5,727.8594,929.5,731.8594,919.5,735.8594,923.5,731.8594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="176" x2="925.5" y1="731.8594" y2="731.8594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="103" x="183" y="726.7935">cmd(command)</text><polygon fill="#A80036" points="187,756.9922,177,760.9922,187,764.9922,183,760.9922" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="181" x2="930.5" y1="760.9922" y2="760.9922"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="60" x="193" y="755.9263">at::Result</text><polygon fill="#A80036" points="623,786.125,633,790.125,623,794.125,627,790.125" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="176" x2="629" y1="790.125" y2="790.125"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="272" x="183" y="785.0591">Handle(CellularRequestHandler, at::Result)</text><polygon fill="#A80036" points="763,815.2578,773,819.2578,763,823.2578,767,819.2578" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="645" x2="769" y1="819.2578" y2="819.2578"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="652" y="814.1919">Handle(IRequest)</text><polygon fill="#A80036" points="984,844.3906,994,848.3906,984,852.3906,988,848.3906" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="780" x2="990" y1="848.3906" y2="848.3906"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="192" x="787" y="843.3247">&lt;&lt;specific system actions&gt;&gt;</text><polygon fill="#A80036" points="14,873.5234,4,877.5234,14,881.5234,10,877.5234" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 2.0,2.0;" x1="8" x2="170" y1="877.5234" y2="877.5234"/><text fill="#000000" font-family="monospace" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="144" x="20" y="872.4575">multicast response</text><polygon fill="#A80036" points="628,902.6563,638,906.6563,628,910.6563,632,906.6563" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="171" x2="634" y1="906.6563" y2="906.6563"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="40" x="178" y="901.5903">delete</text><line style="stroke: #A80036; stroke-width: 2.0;" x1="631" x2="649" y1="897.6563" y2="915.6563"/><line style="stroke: #A80036; stroke-width: 2.0;" x1="631" x2="649" y1="915.6563" y2="897.6563"/><!--MD5=[52f0f84982f0558fbdb96c3148020b17]
@startuml
skinparam BackgroundColor F0F0F0
participant ServiceCellular as cellular
participant RequestFactory as factory
participant IRequest as request
participant CellularRequestHandler as handler
participant DLCChannel as channel


?->     cellular + : ""call request""
cellular -> factory + : Create
factory -> factory : emergencyCheck()
alt is emergency and allowed
        factory -> request ** : <<create CallRequest>>
    factory - -> cellular : <<CallRequest : IRequest>>
else is emergency and not allowed
    factory -> request : <<create RejectRequest>>
    factory - -> cellular : <<RejectRequest : IRequest>>
end
note left: decision depends on the emergency\nnumber itself and state of SIM card
loop request types
    factory -> factory : <<regexmatch>>
    alt matched
        factory -> request : <<create matched request>>
        factory - -> cellular : << matched : IRequest>>
    end
end
alt SIM not present
    factory -> request : <<create RejectRequest>>
    factory - -> cellular : <<RejectRequest>>
else else
    factory -> request : <<create CallRequest>>
    factory - -> cellular -: <<CallRequest>>
end
cellular ->request : command()
request - -> cellular: <<command>>
cellular -> channel: cmd(command)
channel - ->cellular : at::Result
cellular -> request +: Handle(CellularRequestHandler, at::Result)
request -> handler + : Handle(IRequest)
handler->? - : <<specific system actions>>
?<- -    cellular - - : ""multicast response""
cellular -> request !! : delete
@enduml

PlantUML version 1.2020.02(Sun Mar 01 05:22:07 EST 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 11.0.12+7-post-Debian-2
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>