Call Hold SS » History » Version 3
laforge, 06/03/2018 11:25 PM
1 | 1 | laforge | h1. Call Hold SS |
---|---|---|---|
2 | |||
3 | Call Hold (HOLD) is specified together with Call Waiting (CW). |
||
4 | |||
5 | h2. Relevant Specifications |
||
6 | |||
7 | 2 | laforge | * "3GPP TS 22.083: Call Waiting (CW) and Call Hold (HOLD) supplementary service; Stage 1":http://www.etsi.org/deliver/etsi_ts/122000_122099/122083/14.00.00_60/ts_122083v140000p.pdf |
8 | ** high-level description + definition |
||
9 | 1 | laforge | * "3GPP TS 23.083: Call Waiting (CW) and Call Hold (HOLD) supplementary service; Stage 2":http://www.etsi.org/deliver/etsi_ts/123000_123099/123083/14.00.00_60/ts_123083v140000p.pdf |
10 | ** contains SDL state diagrams for VLR and MSC |
||
11 | 2 | laforge | * "3GPP TS 24.010: Supplementary services specification":http://www.etsi.org/deliver/etsi_ts/124000_124099/124010/14.00.00_60/ts_124010v140000p.pdf |
12 | * "3GPP TS 24.080: supplementary services specification; Formats and coding":http://www.etsi.org/deliver/etsi_ts/124000_124099/124080/14.01.00_60/ts_124080v140100p.pdf |
||
13 | 1 | laforge | * "3GPP TS 24.083: Call Waiting (CW) and Call Hold (HOLD) supplementary service; Stage 3":http://www.etsi.org/deliver/etsi_ts/124000_124099/124083/14.00.00_60/ts_124083v140000p.pdf |
14 | ** contains information on signaling on L3 interface between MS and MSC |
||
15 | |||
16 | |||
17 | h2. Notes |
||
18 | |||
19 | * the HOLD state is not a state in the 24.007/24.008 call control state machine, but an auxiliary state machine: |
||
20 | ** *Idle* before/after any HOLD or after HOLD REJECT. |
||
21 | ** *Hold request* HOLD sent but no response yet |
||
22 | ** *Call Held* after successful HOLD operation |
||
23 | ** *Retrieve request* RETRIEVE sent but no response yet |
||
24 | |||
25 | |||
26 | h3. notification of other party |
||
27 | |||
28 | The other party is notified if SS-screening != 0: |
||
29 | ** Facility/Invoke/NotifySS/HOLD |
||
30 | |||
31 | h3. HOLD activation |
||
32 | |||
33 | * MS sends HOLD |
||
34 | * MSC responds with HOLD ACK in successful case |
||
35 | * MSC responds with HOLD REJECT in error case (#29: rejected, #50: not subscribed, #69: not implemented, ...) |
||
36 | |||
37 | h3. RETRIEVE activation |
||
38 | |||
39 | * MS sends RETRIEVE |
||
40 | * MSC responds with RETRIEVE ACK in successful case |
||
41 | * MSC responds with RETRIEVE REJECT in unsuccessful case |
||
42 | |||
43 | h3. altenating between calls |
||
44 | |||
45 | The HOLD/RETRIEVE messages contain the regular CC transaction identifer, which is used to differentiate different calls. You can put one call on hold and subsequently retrieve another. |
||
46 | 3 | laforge | |
47 | h3. translation to SIP |
||
48 | |||
49 | It seems that "RFC 5359":https://tools.ietf.org/html/rfc5359 explains how to implement call hold on the SIP side. |
||
50 | |||
51 | http://www.tech-invite.com/fo-sip/tinv-fo-sip-service-01.html features a graphical message sequence chart. Combined with what we know about the GSM side of things, it looks like |
||
52 | * the CC HOLD must be translated to a SIP INVITE(sendonly) |
||
53 | * the SIP 200 OK in response translates to CC HOLD ACK |
||
54 | * the CC RETRIEVE must be translated to a SIP INVITE(sendrecv) |
||
55 | * the SIP 200 OK in response translates to CC RETRIEVE ACK |
||
56 | |||
57 | Further references: |
||
58 | * Section B.9 of "Q.1912.5":https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-Q.1912.5-201801-I!!PDF-E&type=items explains the detailed mapping between the SDP sendrecv/recvonly/inactive/... mappings |
||
59 | * Section 7.4 of "3GPP TS 29.163":http://www.etsi.org/deliver/etsi_ts/129100_129199/129163/14.06.00_60/ts_129163v140600p.pdf seems to repeat those same mappings? |
||
60 | |||
61 | * "Cisco MGC SIP/ISUP Conversion of HOLD":https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/pgw/9/feature/module/9-7_3_/sip_isup.pdf |