idnits 2.17.1 draft-madhu-megaco-callflows-00.txt: ** The Abstract section seems to be numbered Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-26) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity. == It seems as if not all pages are separated by form feeds - found 0 form feeds but 270 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an Introduction section. ** The document seems to lack a Security Considerations section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** There are 26 instances of too long lines in the document, the longest one being 6 characters in excess of 72. ** There are 18 instances of lines with control characters in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 43 has weird spacing: '...ry call servi...' == Line 2647 has weird spacing: '...towards the o...' == Line 3890 has weird spacing: '...2/clear signa...' == Line 4342 has weird spacing: '...forward signa...' == Line 7822 has weird spacing: '...the mode of t...' == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (July 2001) is 8321 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- -- Missing reference section? '1' on line 155 looks like a reference Summary: 9 errors (**), 0 flaws (~~), 7 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Media Gateway Control (Megaco) Madhubabu Brahmanapally 3 Internet Engineering Task Force Prerepa Viswanadham 4 Internet Draft krishna Gundamaraju 5 Document: draft-madhu-megaco-callflows-00.txt Kenetec Inc 6 Category: Informational 7 July 2001 8 Expires:January 2002 10 Megaco/H.248 Call flow examples 12 Status of this Memo 14 This draft is an Internet-Draft and is in full conformance with 15 all provisions of Section 10 of RFC2026. 17 Internet-Drafts are working drafts of the Internet Engineering 18 Task Force (IETF), its areas, and its working groups. Note that 19 other groups may also distribute working drafts as Internet- 20 Drafts. Internet-Drafts are draft drafts valid for a maximum of 21 six months and may be updated, replaced, or obsoleted by other 22 drafts at any time. It is inappropriate to use Internet- Drafts 23 as reference material or to cite them other than as "work in 24 progress." 26 The list of current Internet-Drafts can be accessed at 27 http://www.ietf.org/ietf/1id-abstracts.txt 28 The list of Internet-Draft Shadow Directories can be accessed at 29 http://www.ietf.org/shadow.html. 31 1. Abstract 33 This draft illustrates the usage of Megaco (version 1) 34 protocol defined between the Media Gateway Controller and Media 35 Gateway. In light of the vast features presently incorporated 36 and continuously evolving features of the protocol, it serves the 37 purpose of representing typical use case scenarios. There are a 38 lot of possible scenarios for usage of MEGACO protocol. It is not 39 the intent of the draft to represent the inter-working functionality 40 among various protocols, however, an attempt is made to depict 41 its usage in such a case for the purpose of completeness in the 42 larger perspective. An attempt has been made to show the 43 supplementary call services using MEGACO. The call flows can 44 be categorized in to two sub sections, 45 - MEGACO only call scenario 46 - MEGACO and other protocols 48 The draft begins with showing MEGACO only call scenarios, where 49 the called and calling party lie on MEGACO domain. Various 50 permutations are possible even in this setup, viz 51 RGW to RGW 52 RGW to TGW 53 TGW to TGW 54 RGW/TGW to IVR 56 In the other case, typical cases of MEGACO interaction with other 57 protocols have been depicted. Here it is assumed that the MG, 58 which participates in the interaction, is RGW. This can be extended 59 to any type of Media GW. The scenarios include 61 MEGACO user with SIP 62 MEGACO user with H.323 63 MEGACO user with SS7 64 MEGACO user with ISDN 65 MEGACO user with R1 66 MEGACO user with R2 68 The packages used in each of the calls flows are mentioned before each 69 of the call flows. The packages that are addressed in this draft along 70 with the packages defined in the base protocol also include packages 71 like R2, R1, etc to illustrate the protocol usage. In case of Trunking 72 gateways even though its not shown explicitly it is assumed that the 73 messages from the CCS (Common Channel Signaling) switches are received 74 by MGC through the Signaling Gateway. The emphasis of the draft is on 75 the Megaco commands hence the messages between Signaling Gateway and 76 MGC are not shown explicitly. Wherever applicable it should be assumed 77 that the CCS switches/exchanges are communicating the messages to 78 MGC through the Signaling Gateway. 80 One of the sections illustrates the usage of SDP for ATM. For 81 simplicity residential gateway with ATM connectivity is assumed. 82 However the same holds true for trunking gateways also. Two methods 83 of call establishment with SDP for ATM are discussed, namely the 84 "Backward Bearer Connection Set-up Model" and "Forward Bearer 85 Connection Set-up Model". 87 This draft should be treated as only a means to illustrate the usage 88 of Megaco but not as a guide for implementing Media Gateway or Media 89 Gateway Controller. These calls flows are only informative. All the 90 messages are encoded in the ABNF syntax for simplicity. The same calls 91 flows are valid with binary messages also. Care has been taken to see 92 that the messages are according to the protocol grammar, in case of 93 discrepancies the protocol draft has to be considered. The Call flow 94 diagrams are only a means to abstract the protocol messages exchanged 95 between the MG and the MGC. These call flow diagrams are not according 96 to any time scale. The IP addresses and port numbers used in the examples 97 are fictitious. The statistic parameter values are also fictituous. 99 1.2 References:.....................................................4 100 2. Internet Telephony Call Flows....................................4 101 2.1 Call between two residential gateways...........................4 102 Case (a).......................................................7 103 Case (b)......................................................18 104 Case (c)......................................................18 105 2.2 Call between Residential Gateway and Trunking Gateway..........24 106 2.3 Call between Trunking gateway and Residential Gateway..........34 107 2.4 Call between two Trunking gateways.............................42 108 2.5 Call between Residential gateway and SS7 trunk in TGW..........49 109 2.6 Call between SS7 trunk in TGW and residential gateway..........58 110 2.7 Call between SS7 trunk in TGW and R2 trunk in TGW..............67 111 2.8 Call between R2 trunk in TGW and SS7 trunk in TGW..............76 112 2.9 Call between R1 trunk in TGW and SS7 trunk in TGW..............85 113 2.10 Call between SS7 trunk in TGW and R1 trunk in TGW.............94 114 2.11 Call between ISDN trunk in TGW and SS7 trunk in TGW..........103 115 2.12 Continuity test from TGW.....................................109 116 Case (a)....................................................109 117 Case (b)....................................................111 118 2.13 Call from residential gateway to H.323 Terminal..............112 119 2.14 Call from residential gateway to SIP user....................120 120 3 Service Change Command Usage....................................127 121 3.1 ROOT Termination..............................................127 122 3.1.1 Registration................................................127 123 3.1.2 Cold Start..................................................129 124 3.1.3 Handoff.....................................................131 125 3.1.4 Disconnection...............................................133 126 3.2 Service Change for Termination................................136 127 3.2.1 MG generated Service Change.................................136 128 3.2.2 MGC generated Service Change................................143 129 4.0 Audit Command Usage...........................................146 130 4.1 Audit Value...................................................146 131 4.1.1 Audit value command on ROOT Termination.....................146 132 4.1.2 Audit value on non-ROOT terminations........................148 133 4.2 Audit Capability..............................................150 134 4.2.1 Audit Capability on ROOT termination........................150 135 4.2.2 Audit Capability on non-Root Terminations...................150 136 5. IVR using MEGACO...............................................151 137 5.1 Connecting Residential gateway to IVR.........................151 138 5.2 Disconnecting Residential User from IVR.......................158 139 5.3 Connecting Trunking Gateway to IVR............................160 140 5.4 Disconnecting Trunking gateway from IVR.......................164 141 6. Wildcard ContextID usage.......................................166 142 7. Wildcard TerminationId Usage...................................167 143 8. Supplementary services support.................................168 144 8.1 Call Transfer.................................................168 145 8.2 Call waiting..................................................189 146 9. Conferencing...................................................211 147 10.0 SDP for ATM..................................................243 148 10.1.1 Forward Bearer Connection Set-up Method....................244 149 10.1.2 Backward Bearer Connection Set-up Method...................257 150 1.1. Conventions used in this document 152 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 153 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in 154 this document are to be interpreted as described in RFC-2119 [1]. 156 1.2 References: 158 1) Cuervo, et al. "Megaco Protocol Version 1.0", RFC 3015, November2000. 159 2) Christian Huitema, et. Al. "Media Gateway Control Protocol (MGCP) 160 Call Flows". < 161 3) Implementers' Guide for ITU Recommendation H.248. Nov 2000. 162 4) Megaco mail archive 163 http://standards.nortelnetworks.com/archives/megaco.html 164 5) R2 Package for Megaco Protocol, Kushanava Laha et al,"work in 165 progress" 166 6) V.Bajaj et al, Megaco/H.248 Basic CAS Packages,"Work in Progress" 167 168 7) Wendy et. al, draft-bothwell-megaco-mftonepkgs-01.txt, "Work in 169 Progress", "MF Tone Generation and Detection Packages" 170 8) Rajesh Kumar et. al, Conventions for the use of the Session 171 Description Protocol (SDP)for ATM Bearer Connections. 172 "draft-ietf-mmusic-sdp-atm-05.txt", "Work in Progress". 174 2. Internet Telephony Call Flows 176 This section illustrates sample Internet telephone calls. Calls between 177 Trunking gateway, Residential gateway, H.323 Endpoint, etc are 178 illustrated. In all these call scenarios emphasis is given on the 179 Megaco protocol messages rather than the remaining entities.2.1 Call 180 between two residential gateways 182 2.1 Call between two Residential Gateways 184 The call establishment between two residential users is considered in 185 this example. User A and User B are connected to two residential 186 gateways RGW1 and RGW2. For simplicity we consider the case where 187 the two MG's are controlled by the same MGC. The call scenario 188 assumes the implementation of analog line supervision package, 189 RTP package, generic package, DTMF detection package, Call progress 190 generator package, and the Network Package. Along with the successful 191 call between the two users (case a), we also consider the case 192 where the called party is busy (case c), and the call termination 193 by both the users (case a for UserA terminated call flow and case b 194 for UserB terminated call flow) is also discussed. In this example 195 the registration of the MG (RGW) with the MGC is assumed to have 196 happened as explained in section 3.1.1 Registration. 198 _____________________________________________________________________ 199 | | | | 200 USERA | RGW1 | MGC | RGW2 | USERB 201 _____________|___________|___________|______________|_________________ 202 | | | | | 203 | | | | | 204 | | |---------->| | 205 | | |Modify to | | 206 | | |Check Offhook | 207 | |<----------| | | 208 | |Modify to | | | 209 | |check offhook | | 210 | |---------->|<----------| | 211 | |Modify Resp| Modify Resp | 212 |----------->| | | | 213 |UserA offhook | | | 214 | |---------->| | | 215 | |Notify offhook | | 216 | |<----------| | | 217 | |Notify Resp| | | 218 | |<----------| | | 219 | |Modify SG:dialtone | | 220 | |ED:al/on,dd/ce{Dmap1} | | 221 | |DM:Dmap1 = 2XXX | | 222 |<-----------| | | | 223 |Dial Tone |---------->| | | 224 | |Modify Resp| | | 225 | | | | | 226 |----------->| | | | 227 |User Dials Digits | | | 228 | |---------->| | | 229 | |Notify digits | | 230 | |<----------| | | 231 | |Notify Response | | 232 | |<----------| | | 233 | | Add TermA SD:ringbacktone | 234 | | Add $, Local SDP Info -underspecified | 235 |<-----------| | | | 236 |RingBack Tone | | | 237 | |---------->| | | 238 | |Modify Resp TermA | | 239 | |Add Resp Local SDP (Specified) | 240 | | |---------->| | 241 | | |Add TermB SD:Ring ED:offhook | 242 | | |Add $ Local(Underspecified) | 243 | | | Remote SDP (Specified) | 244 | | | | | 245 | | | |------------------>| 246 | | | | UserB Phone Ringing 247 | | |<----------| | 248 | | |Add Resp TermB | 249 | | |Add Resp EphB Local Specified | 250 | | | |<------------------| 251 | | | |UserB goes Offhook | 252 | | |<----------| | 253 | | |Notify Offhook | 254 | | |---------->| | 255 | | | Notify Resp | 256 | |<----------| | | 257 | |Modify TermA SendRecv | | 258 | |Modify EphA Remote(Specified) SendRecv | 259 | |---------->| | | 260 | |Modify Resp| | | 261 | | |---------->| | 262 | | |Modify TermB SendRecv | 263 | | |Modify EphB SendRecv | 264 | | |<----------| | 265 | | |Modify Resp| | 266 |/------------------------------------------------------\| 267 | RTP MEDIA | 268 |\------------------------------------------------------/| 269 |----------->| | | | 270 |UserA goes OnHook | | | 271 | |---------->| | | 272 | |Notify OnHook | | 273 | |<----------| | | 274 | |Notify Resp| | | 275 | | |---------->| | 276 | | |Modify TermA SD:BusyTone | 277 | | | |------------------>| 278 | | | | Busy tone to UserB| 279 | | |<----------| | 280 | | |Modify Resp| | 281 | |<----------| | | 282 | |Subtract TermA | | 283 | |Subtract EphA | | 284 | |---------->| | | 285 | |Subtract Resp TermA | | 286 | |Subtract Resp EphA Statistics | 287 | | | |<------------------| 288 | | | | UserB goes Onhook | 289 | | |<----------| | 290 | | |Notify Onhook | 291 | | |---------->| | 292 | | |Notify Resp| | 293 | | |---------->| | 294 | | |Subtract TermB | 295 | | |Subtract EphB | 296 | | |<----------| | 297 | | |Subtract Resp TermB | 298 | | |Subtract Resp EphB Statistics | 299 |____________|___________|___________|___________________| 301 Case (a) 303 In all the telephone scenarios explained in this draft, once the call 304 is terminated by either the Calling party or the called party, the 305 other user listens a busy tone. A dial tone can be applied for the user 306 to initiated another call. But for simplicity busy tone is applied so 307 that the user goes onhook before initiating another call. It is assumed 308 in the call scenarios that the registration of the MG with the MGC is 309 done already. In Step 1 the MGC generates the Modify message towards 310 both the Residential gateways to check for off hook on the 311 terminations. (A wildcard command may also be used in this scenario but 312 simplicity we consider only command to specific terminations). Modify 313 message generated only for Residential gateway 1 is shown, similar 314 message is sent to the other Residential gateway also. We are not 315 considering the embedded signal and event descriptors here. Another 316 call scenario will illustrate the use of embedded event and signal 317 descriptors. The MGC in NULL context generates the command to the 318 specific termination TermA. The off hook event of the analog supervision 319 package is used here. The request identifier specified here in the 320 example is 1111. The mode of the termination is set to receive only. 321 The stream parameter is used with only the Local control descriptor. 323 Step 1 324 MGC to RGW1: 325 MEGACO/1 [216.33.33.61]: 27000 326 Transaction = 1234 { 327 Context = - { 328 Modify = TermA { 329 Media { 330 LocalControl { 331 Mode = Receiveonly} 332 }, 333 Events = 1111 {al/of} 334 } 335 } 336 } 338 MG after receiving the command from MGC accepts it and responds with the 339 transaction reply. 341 Step 2 343 MG1 to MGC: 344 MEGACO/1 [209.110.59.34]: 25000 345 Reply = 1234 { 346 Context = - {Modify = TermA} 347 } 349 In this example User A goes off hook. This event is detected by the 350 RGW1 and constructs and sends the Notify message towards the MGC. The 351 MG uses the same request id (1111) sent by the MGC in its initial 352 command. The timestamp of the detected event is also passed as 353 parameter to the observed event. 355 Step 3 356 MG1 to MGC: 357 MEGACO/1 [209.110.59.34]: 25000 358 Transaction = 2000 { 359 Context = - { 360 Notify = TermA {ObservedEvents =1111 { 361 20010202T10000000:al/of}} 362 } 364 MGC generates the Notify response and responds with more messages 365 towards the MG that generated the Notify command. 367 Step 4 368 MGC to MG1: 369 MEGACO/1 [216.33.33.61]: 27000 370 Reply = 2000 { 371 Context = - {Notify = TermA} 372 } 374 The MGC in the present example issues a MODIFY command. The Modify 375 command contains a signal descriptor for the application of dial tone 376 to the user. The digit map descriptor here is used to configure a digit 377 map on the termination. The digit map name used in the example is 378 Dmap1 and the dial pattern is 2XXX. The event descriptor lists digit 379 map completion event of the DTMF detection package and onhook of the 380 analog line supervision package. The request id specified in the event 381 descriptor is 1112. 383 Step 5 384 MGC to MG1: 385 MEGACO/1 [216.33.33.61]: 27000 386 Transaction = 1235 { 387 Context = - { 388 Modify = TermA { 389 Signals {cg/dt}, 390 DigitMap= Dmap1 {(2XXX)} 391 Events = 1112 { 392 al/on, dd/ce {DigitMap=Dmap1} 393 }, 394 } 395 } 396 } 398 MG after receiving the Modify command after validation responds to 399 the MGC and starts processing the descriptors listed. 401 Step 6 402 MG1 to MGC: 404 MEGACO/1 [209.110.59.34]: 25000 405 Reply = 1235 { 406 Context = - {Modify = TermA} 407 } 409 The descriptors are processed in the order that is specified by the 410 MGC. In this example the order of descriptor is signal descriptor, 411 digit map descriptor followed by Events descriptor. The MG first 412 processes the signal descriptor. The dial tone is applied to the 413 Termination specified. The Digit map is updated in the Database of the 414 termination. The Digit map said to be ACTIVE on the termination as the 415 digit map completion event is listed in the events descriptor with the 416 digit map name. A digit map is activated whenever a new event 417 descriptor is applied to the termination or embedded event descriptor 418 is activated, and that event descriptor contains a digit map 419 completion event which itself contains a digit map parameter. UserA 420 after receiving the dial tone starts dialing digits. In this example 421 we will not dwell into the different possible cases of digit dialing 422 by the user. It's assumed that the user dials digits that match the 423 pattern specified in the digit map. Lets assume that the user has 424 dialed 2992. MG detects the digits dialed and reports the same as 425 parameter to the digit map completion event. A notify command is 426 generated from MG1 to MGC. The MG again used the same request 427 identifier as specified by the MGC. 429 Step 7 430 MG1 to MGC: 431 MEGACO/1 [209.110.59.34]: 25000 432 Transaction = 2001 { 433 Context = - { 434 Notify = TermA {ObservedEvents =1112 { 435 20010202T10010000:dd/ce {ds="2992", Meth=FM}}} 436 } 437 } 439 MGC after receiving the Notify command responds back with the Notify 440 response. 442 Step 8 443 MGC to MG1: 444 MEGACO/1 [216.33.33.61]: 27000 445 Reply = 2001 { 446 Context = - {Notify = TermA} 447 } 449 MGC after receiving the Notify command starts analyzing the dialed 450 digits. In this example it is assumed that the called subscriber is 451 connected to the RGW2, which is again controlled by the same MGC. The 452 MGC generates a transaction with two commands clubbed into the same 453 Action. The first command is to create a new context and add the 454 physical termination TermA into it. As the MGC is aware that the 455 destination user UserB is free it indicates MG1 to apply ringback 456 tone to the termination of UserA. The second command is generated 457 to create an ephemeral termination and add the created termination 458 in the same context that was created because of the earlier command. 459 Here we assumed a single set of SDP information indicating that 460 Reserve group is not used. The Reserve Value feature is also not used. 462 Step 9 463 MGC to MG1: 464 MEGACO/1 [216.33.33.61]: 27000 465 Transaction = 1236 { 466 Context = $ { 467 Add = TermA { 468 Signals {cg/rt} 469 } 470 Add = $ { 471 Media { 472 { 473 LocalControl { 474 Mode = Receiveonly, 475 }, 476 Local { 477 v=0 478 c=IN IP4 $ 479 m=audio $ RTP/AVP 4 480 } 481 } 482 } 483 } 484 } 486 In this example the connection fields IP address, the media field port 487 number are unspecified. The MG in its response indicates the IPAddress 488 and port number used. The contextID is also not specified indicating the 489 creation of a new context. In this example the MG creates a context 490 with contextID 1. The physical termination TermA is added to context 1. 491 The mode of the physical termination was earlier set to Receiveonly 492 and in this message the ephemeral termination is requested to create 493 with Receiveonly mode. The ephemeral termination created in this 494 example is EphA. MG responds with the allocated IP address 495 209.110.59.33 and port number 30000. 497 Step 10 498 MG1 to MGC: 499 MEGACO/1 [209.110.59.34]: 25000 500 Reply = 1236 { 501 Context = 1 { 502 Add = TermA, 503 Add=EphA{ 504 Media { 505 Local { 506 v=0 507 c=IN IP4 209.110.59.33 508 m=audio 30000 RTP/AVP 4 509 a=recvonly 510 } ; RTP profile for G.723 is 4 511 } 512 } 513 } 514 } 515 } 517 MGC generates a similar transaction towards the RGW2. The ContextID 518 specified in the action is $. The first command adds the physical 519 termination TermB to the newly created context. The Signal descriptor 520 for this termination lists the ring signal of the analog line 521 supervision package. This alerting signal is applied to the termination 522 of the TermB. The Event descriptor specifies offhook event of the 523 analog line supervision package. The second Add is meant to create an 524 ephemeral termination. MGC has the local information for the 525 ephemeral termination EphA in the RGW1. This information is passed 526 as remote information to the RGW2. The new ephemeral termination that 527 will be created will take these parameters as the remote SDP 528 information. 530 Step 11 531 MGC to MG2: 532 MEGACO/1 [216.33.33.61]:27000 533 Transaction = 1237 { 534 Context = $ { 535 Add = TermB { Media { 536 LocalControl {Mode = Receiveonly} }, 537 Signals {al/ri} 538 Events =1234{al/of {events = 1235 {al/on}}}, 539 }, 540 Add = $ {Media { 541 LocalControl { 542 Mode = Receiveonly, 543 }, 544 Local { 545 v=0 546 c=IN IP4 $ 547 m=audio $ RTP/AVP 4 549 }, 550 Remote { 551 v=0 552 c=IN IP4 209.110.59.33 553 m=audio 30000 RTP/AVP 4 554 } ; RTP profile for G.723 is 4 555 } 557 } 558 } 559 } 560 } 562 MG2 after receiving the new transaction from MGC starts processing it. 563 It creates a new context with contextID 2. It adds the physical 564 termination TermB to that context and start processing the descriptor 565 specified in the command. The signal descriptor lists "ring" signal 566 to be applied on the termination. The event descriptor lists the 567 off hook event. The RGW2 creates an ephemeral termination with 568 TerminationId EphB. The local information is under-specified from 569 the MGC. The MG allocates the necessary resources for processing the 570 media descriptor for the ephemeral termination. The MG responds 571 to the MGC by specifying the IP address reserved for the local 572 connection. In this example MG2 reserves IP address 207.176.47.90 573 and port number 40000. The MG2 responds to MGC with the following 574 transaction reply. 576 Step 12 577 MG2 to MGC: 578 MEGACO/1 [207.176.47.89]: 26000 579 Reply = 1237 { 580 Context = 2 { 581 Add = TermB, 582 Add = EphB{ 583 Media { 584 Local { 585 v=0 586 c=IN IP4 207.176.47.90 587 m=audio 40000 RTP/AVP 4 588 } 589 } ; RTP profile for G723 is 4 590 } 591 } 592 } 594 The MGC waits for the UserB to go offhook. Once the UserB goes offhook, 595 MG2 reports the notification of the offhook event to the MGC. 597 Step 13 598 MG2 to MGC: 599 MEGACO/1 [207.176.47.89]: 26000 600 Transaction = 3000 { 601 Context = 2 { 602 Notify = TermB {ObservedEvents =1234 { 603 20000202T10020000:al/of}} 604 } 605 } 606 The MGC responds to the MG2 with the Notify response. 608 Step 14 609 MGC to MG2: 610 MEGACO/1 [216.33.33.61]: 27000 611 Reply = 3000 { 612 Context = 2 {Notify = TermB} 613 } 614 The MGC generates a transaction towards MG2 with two commands in one 615 action. It changes the mode of both the terminations to sendrecv. The 616 Signal descriptor of the Modify command for the first termination, 617 stops the ring signal already applied on the termination and the event 618 descriptor lists the onhook event. 620 Step 15: 621 MGC to MG2: 622 MEGACO/1 [216.33.33.61]: 27000 623 Transaction = 1238 { 624 Context = 2 { 625 Modify = TermB { 626 Signals { } ; to turn off ringing 627 Events = 1235 {al/on}, 628 Media { 629 LocalControl { 630 Mode = SendRecv, 631 } 632 } 633 } 634 Modify = EphB{ 635 Media { 636 LocalControl { 637 Mode = SendRecv, 638 } 639 } 640 } 641 } 643 The MG2 responds to the request from MGC. 645 Step 16 646 MG2 to MGC: 647 MEGACO/1 [207.176.47.89]: 26000 648 Reply = 1238 { 649 Context = 2 {Modify = TermB , Modify = EphB} 650 } 652 The MGC generates message to the MG1 to stop the ringback tone and to 653 report the remote SDP information for the ephemeral termination EphA. 654 The mode of the two terminations TermA and EphA is set to send receive. 656 Step 17 657 MGC to MG1: 658 MEGACO/1 [216.33.33.61]: 27000 659 Transaction = 1239 { 660 Context = 1 { 661 Modify = TermA { 662 Media { 663 LocalControl { 664 Mode = sendrecv} 665 } 666 } 667 Signals { } 668 }, 669 Modify = EphA { 670 Media { 671 LocalControl { 672 Mode = sendrecv} 673 Remote { 674 v=0 675 c=IN IP4 207.176.47.90 676 m=audio 40000 RTP/AVP 4 677 } 678 } ; RTP profile for G723 is 4 679 } 680 } 681 } 682 } 683 The empty signal descriptor in the Modify command for termination 684 TermA, specifies to stop the ringback tone at the calling end. The 685 remote SDP information is updated for the ephemeral termination EphA. 686 The mode is changed to send receive. MG1 responds to the MGC with the 687 response for the Modify commands. 689 Step 18 690 MG1 to MGC: 691 MEGACO/1 [209.110.59.34]: 25000 692 Reply = 1239 { 693 Context = 1 {Modify = TermA, Modify = EphA} 694 } 695 The two users can exchange the voice. The call can be termination 696 either by the calling user or the called user. In this example it is 697 assumed that the calling party has gone on-hook The UserA after the 698 conversation goes onhook indicating the tearing down of the call. The 699 same is reported in the Notify command from MG1 to MGC. 701 Step 19 702 RGW1 to MGC: 703 MEGACO/1 [209.110.59.34]:25000 704 Transaction = 2002 { 705 Context = 1 { 706 Notify = TermA {ObservedEvents =1112 { 707 20010202T10030000:al/on} 708 } 709 } 711 The MGC responds to the MG1s Notify message. 713 Step 20 714 MGC to RGW1: 715 MEGACO/1 [216.33.33.61]:27000 716 Reply = 2002 { 717 Context = 1 { 718 Notify = TermA 719 } 720 } 722 The MGC generates a Modify command towards the RGW2 for applying busy 723 tone to the called subscriber. The mode of both terminations is set to 724 receive only. 726 Step 21 727 MGC to RGW2: 728 MEGACO/1 [216.33.33.61]: 27000 729 Transaction = 1240 { 730 Context = 2 { 731 Modify = TermB { 732 Signals {cg/bt} 733 Media { 734 LocalControl { 735 Mode = recvonly} 736 } 737 }, 738 Modify = EphB { 739 Media { 740 LocalControl { 741 Mode = recvonly} 742 } 743 } 744 } 745 } 746 } 748 The MG2 responds to this modify request. 750 Step 22 751 MG2 to MGC: 752 MEGACO/1 [207.176.47.89]: 26000 753 Reply = 1240 { 754 Context = 2 { 755 Modify= TermB, Modify = EphB} 756 } 758 The MGC generates transactions with two subtracts commands one for 759 physical and other for ephemeral terminations. The MGC does the same 760 for both the Contexts one at RGW1 and the other at RGW2. 762 Step 23: 763 MGC to MG1 764 MEGACO/1 [216.33.33.61]: 27000 765 Transaction = 1241 { 766 Context = 1 { 767 Subtract = TermA {Audit{ }}, 768 Subtract = EphA {Audit{Statistics}} 769 } 770 } 771 The MG subtracts the two terminations from the context. The context 772 itself is deleted with the subtract of the last termination from it. 773 The MG1 responds to this transaction from MGC with statistics on 774 ephemeral termination. 776 Step 24 777 MG1 to MGC: 778 MEGACO/1 [209.110.59.34]:25000 779 Reply = 1241 { 780 Context = 1 { 781 Subtract = TermA 782 Subtract = EphA { 783 Statistics { 784 rtp/ps=1234, ; packets sent 785 nt/os=56789, ; octets sent 786 rtp/pr=987, ; packets received 787 nt/or=65432, ; octets received 788 rtp/pl=10, ; % packets lost 789 rtp/jit=30, 790 rtp/delay=30 ; average latency 791 } 792 } 793 } 794 } 796 The User B after going onhook, the RGW2 generates Notify command 797 towards the MGC. 799 Step 25 800 MG2 to MGC: 801 MEGACO/1 [207.176.47.89]: 26000 802 Transaction = 3001 { 803 Context = 2 { 804 Notify = TermB {ObservedEvents =1235 { 805 20000202T10070000:al/on}} 806 } 807 } 808 The MGC responds to the MG2 with the Notify response. 810 Step 26 811 MGC to MG2: 812 MEGACO/1 [216.33.33.61]: 27000 813 Reply = 3001 { 814 Context = 2 {Notify = TermB} 815 } 817 The MGC generates subtract command towards RGW2 for removing TermB 818 from valid context. 820 Step 26 821 MGC to MG2: 822 MEGACO/1 [216.33.33.61]: 27000 823 Transaction = 1242 { 824 Context = 2 { 825 Subtract = TermB {Audit{ }}, 826 Subtract = EphB {Audit{Statistics}} 827 } 828 } 829 The MG2 responds to the subtract commands generated by MGC. 831 Step 27 832 MG2 to MGC: 833 MEGACO/1 [207.176.47.89]:26000 834 Reply = 1242 { 835 Context = 2 { 836 Subtract = TermB 837 Subtract = EphB { 838 Statistics { 839 rtp/ps=987, ; packets sent 840 nt/os=65432, ; octets sent 841 rtp/pr=1234, ; packets received 842 nt/or=56789, ; octets received 843 rtp/pl=10, ; % packets lost 844 rtp/jit=30, 845 rtp/delay=30 ; average latency 846 } 847 } 848 } 849 } 851 The MGC generates the message as shown in step 1 to both the RGW1 and 852 RGW2, to enable the users to participate/initiate in further calls. 854 Case (b) 856 _____________________________________________________________________ 857 | | | | 858 USERA | RGW1 | MGC | RGW2 | USERB 859 _____________|___________|___________|______________|_________________ 860 | | | | | 861 | | | | | 862 |/------------------------------------------------------\| 863 | RTP MEDIA | 864 |\------------------------------------------------------/| 865 | | | | | 866 | | | |<------------------| 867 | | | |UserB goes Onhook | 868 | | |<----------| | 869 | | |Notify Onhook | 870 | | |---------->| | 871 | | |Notify Resp| | 872 | | |---------->| | 873 | |<----------| | | 874 | |Modify TermA SD:BusyTone | 875 |<-----------| | | | 876 |Busy tone | | | | 877 | |---------->| | | 878 | |Modify Resp| | | 879 | | |Subtract TermB | 880 | | |Subtract EphB | 881 | | |<----------| | 882 | | |Subtract Resp TermB | 883 | | |Subtract Resp EphB Statistics | 884 |----------->| | | | 885 |UserA goes Onhook | | | 886 | |---------->| | | 887 | |Notify OnHook | | 888 | |<----------| | | 889 | |Notify Resp| | | 890 | |<----------| | | 891 | |Subtract TermA | | 892 | |Subtract EphA | | 893 | |---------->| | | 894 | |Subtract Resp TermA | | 895 | |Subtract Resp EphA Statistics | 896 |____________|___________|___________|___________________| 898 The case (a) above illustrated the call flow between two Residential 899 Gateways controlled by a single MGC. In this section we will discuss 900 the call scenario where the called party terminates the call. The 901 assumptions for case (a) holds good for this call flow also. The call 902 flow is same till step 18. The voice path is through and both the 903 users are in conversation. We will consider the call flow when UserB 904 goes on hook. As soon as the UserB goes onhook the RGW2 generates 905 notify message to the MGC. 907 Step 19 908 MG2 to MGC: 909 MEGACO/1 [207.176.47.89]:26000 910 Transaction = 3001 { 911 Context = 2 { 912 Notify = TermB {ObservedEvents =1235 { 913 20010202T10030000:al/on} 914 } 915 } 916 } 918 The MGC responds to the MG's notify message. 919 Step 20 920 MGC to MG2: 921 MEGACO/1 [216.33.33.61]:27000 922 Reply = 3001 { 923 Context = 2 { 924 Notify = TermB 925 } 926 } 928 The MGC generates a Modify command towards the RGW1 for applying busy 929 tone to the called subscriber. The mode of both terminations is set 930 to receive only. 932 Step 21 933 MGC to MG1: 934 MEGACO/1 [216.33.33.61]: 27000 935 Transaction = 1240 { 936 Context = 1 { 937 Modify = TermA { 938 Signals {cg/bt} 939 Media { 940 LocalControl { 941 Mode = recvonly} 942 } 943 }, 944 Modify = EphA { 945 Media { 946 LocalControl { 947 Mode = recvonly} 948 } 950 } 951 } 952 } 953 } 955 The MG1 responds to this modify request. 957 Step 22 958 MG1 to MGC: 959 MEGACO/1 [209.110.59.34]: 25000 960 Reply = 1240 { 961 Context = 1 { 962 Modify= TermA, Modify = EphA} 963 } 965 The MGC generates transactions with two subtracts commands one for 966 physical and other for ephemeral terminations. This command is 967 generated towards the RGW2, since UserB has initiated the call tear 968 down. 970 Step 23 971 MGC to MG2: 972 MEGACO/1 [216.33.33.61]: 27000 973 Transaction = 1242 { 974 Context = 2 { 975 Subtract = TermB {Audit {}}, 976 Subtract = EphB {Audit {Statistics}} 977 } 978 } 979 The MG2 responds to the subtract commands generated by MGC. 981 Step 24 982 MG2 to MGC: 983 MEGACO/1 [209.110.59.34]:25000 984 Reply = 1242 { 985 Context = 2 { 986 Subtract = TermB 987 Subtract = EphB { 988 Statistics { 989 rtp/ps=987, ; packets sent 990 nt/os=65432, ; octets sent 991 rtp/pr=1234, ; packets received 992 nt/or=56789, ; octets received 993 rtp/pl=10, ; % packets lost 994 rtp/jit=30, 995 rtp/delay=30 ; average latency 996 } 997 } 998 } 999 } 1001 The User A after hearing the busy tone goes onhook. The same activity 1002 is recognized as onhook event by the RGW1. The Notify command is 1003 generated towards the MGC. 1005 Step 25 1006 RGW1 to MGC: 1007 MEGACO/1 [209.110.59.34]:25000 1008 Transaction = 2002 { 1009 Context = 1 { 1010 Notify = TermA {ObservedEvents =1112 { 1011 20010202T10030000:al/on} 1012 } 1013 } 1014 The MGC responds to the MG1s Notify message. 1016 Step 26 1017 MGC to RGW1: 1018 MEGACO/1 [216.33.33.61]: 27000 1019 Reply = 2002 { 1020 Context = 1 { 1021 Notify = TermA 1022 } 1023 } 1025 The MGC after receiving the Notify command with onhook event, 1026 generates subtract commands to remove the termination from context 1027 Identifier 1. 1029 Step 27: 1030 MGC to MG1 1031 MEGACO/1 [216.33.33.61]: 27000 1032 Transaction = 1241 { 1033 Context = 1 { 1034 Subtract = TermA {Audit{ }}, 1035 Subtract = EphA {Audit{Statistics}} 1036 } 1037 } 1038 The MG subtracts the two terminations from the context. The context 1039 itself is deleted with the subtract of the last termination from it. 1040 The MG1 responds to this transaction from MGC with statistics on 1041 ephemeral termination. 1043 Step 28 1044 MG1 to MGC: 1045 MEGACO/1 [209.110.59.34]:25000 1046 Reply = 1241 { 1047 Context = 1 { 1048 Subtract = TermA 1049 Subtract = EphA { 1050 Statistics { 1051 rtp/ps=1234, ; packets sent 1052 nt/os=56789, ; octets sent 1053 rtp/pr=987, ; packets received 1054 nt/or=65432, ; octets received 1055 rtp/pl=10, ; % packets lost 1056 rtp/jit=30, 1057 rtp/delay=30 ; average latency 1058 } 1059 } 1060 } 1061 } 1063 The MGC generates the message as shown in step 1 to both the RGW1 1064 and RGW2, to enable the users to participate/initiate in further 1065 calls. 1067 Case (c) 1068 _____________________________________________________________________ 1069 | | | | 1070 USERA | RGW1 | MGC | RGW2 | USERB 1071 _____________|___________|___________|______________|_________________ 1072 | | | | | 1073 | | | | | 1074 | | |---------->| | 1075 | | |Modify to | | 1076 | | |Check Offhook | 1077 | |<----------| | | 1078 | |Modify to | | | 1079 | |check offhook | | 1080 | |---------->|<----------| | 1081 | |Modify Resp| Modify Resp | 1082 |----------->| | | | 1083 |UserA offhook | | | 1084 | |---------->| | | 1085 | |Notify offhook | | 1086 | | |<----------| | 1087 | | |Notify Resp| | 1088 | | |<----------| | 1089 | | |Modify SG:dialtone | 1090 | | |ED:al/on,dd/ce{Dmap1} | 1091 | | |DM:Dmap1 = 2XXX | 1092 |<-----------| | | | 1093 |Dial Tone |---------->| | | 1094 | |Modify Resp| | | 1095 | | | | | 1096 |----------->| | | | 1097 |User Dials Digits | | | 1098 | |---------->| | | 1099 | |Notify digits | | 1100 | |<----------| | | 1101 | |Notify Response | | 1102 | |<----------| | | 1103 | |Modify TermA SD:BusyTone | 1104 |<-----------| | | | 1105 |Busy tone | | | | 1106 | |---------->| | | 1107 | |Modify Resp| | | 1108 |----------->| | | | 1109 |UserA goes Onhook | | | 1110 | |---------->| | | 1111 | |Notify OnHook | | 1112 | |<----------| | | 1113 | |Notify Resp| | | 1114 |____________|___________|___________|___________________| 1116 The two call flows explained in case (a) and (b) illustrate a 1117 successful call scenario. In this subsection we will look into the 1118 flow where UserA calls UserB and as the UserB is already in a call, 1119 UserA receives busy tone, thus illustrating an unsuccessful call 1120 scenario. The steps 1 through 8 remain that same. 1122 When the MGC receives the digits dialed by UserA, it analyses the 1123 digits and find that the digits 2992 pertain to UserB, which is again 1124 controlled by the same MGC. In this example UserB is already in some 1125 call. Hence the call initiation from UserA becomes unsuccessful. 1126 MGC in this case issues a message, which instruct the MG, for busy 1127 tone application on the Termination TermA. 1129 Step 9 1130 MGC to MG1: 1131 MEGACO/1 [216.33.33.61]: 27000 1132 Transaction = 1236 { 1133 Context = - { 1134 Modify = TermA { 1135 Signals {cg/bt} 1136 } 1137 } 1138 } 1140 MG responds to the Modify message from MGC. It applies busy tone on 1141 the termination TermA. MG also responds to the message generated from 1142 MGC. 1144 Step 10: 1145 MG1 to MGC: 1146 MEGACO/1 [209.110.59.34]: 25000 1147 Reply = 1236 { 1148 Context = - { 1149 Modify = TermA 1150 } 1152 } 1154 As soon as the UserA goes onhook MG detects the same and reports that 1155 event as parameter in the Notify command it generates towards the MGC. 1157 Step 12: 1158 MG1 to MGC: 1159 MEGACO/1 [209.110.59.34]: 25000 1160 Transaction = 2002 { 1161 Context = - { 1162 Notify = TermA {ObservedEvents =1112 { 1163 20010202T10010000:al/on} 1164 } 1165 } 1166 The MGC responds to the Notify generated by MG. 1168 Step 11: 1169 MGC to MG1: 1170 MEGACO/1 [216.33.33.61]: 27000 1171 Reply = 2002 { 1172 Context = - { 1173 Notify = TermA 1174 } 1175 } 1177 The MGC sends a Modify command towards that RGW1 for the Termination 1178 TermA as shown in step 1 that takes the termination TermA to idle 1179 state. In this state the RGW1 is again ready to detect events on the 1180 termination TermA. 1182 2.2 Call between Residential Gateway and Trunking Gateway 1184 In the earlier section we illustrated the call between two users UserA 1185 and UserB connected to residential gateways RGW1 and RGW2. In this 1186 section we illustrate the call flow between a Residential gateway user 1187 and a Trunking gateway. In this flow, the packages that are supported 1188 by the RGW are analog line supervision package, RTP package, generic 1189 package, DTMF detection package, and Call progress generator package, 1190 Network Package. The Trunking gateway is supports RTP package, generic 1191 package, and network package. We are not assuming any specific 1192 signaling to the other side of the Trunking gateway. This makes call 1193 flow simple and independent of the type of signaling towards the 1194 other side of the Trunking gateway. 1196 _________________________________________________ 1197 | | | 1198 USERA | RGW1 | MGC | TGW 1199 _____________|___________|___________|___________ 1200 | | | | 1201 | | | | 1202 | |<----------| | 1203 | |Modify to | | 1204 | |check offhook | 1205 | |---------->| | 1206 | |Modify Resp| | 1207 |----------->| | | 1208 |UserA offhook | | 1209 | |---------->| | 1210 | |Notify offhook | 1211 | |<----------| | 1212 | |Notify Resp| | 1213 | |<----------| | 1214 | |Modify SG:dialtone | 1215 | |ED:al/on,dd/ce{Dmap1} | 1216 | |DM:Dmap1 = 2XXX | 1217 |<-----------| | | 1218 |Dial Tone |---------->| | 1219 | |Modify Resp| | 1220 | | | | 1221 |----------->| | | 1222 |User Dials Digits | | 1223 | |---------->| | 1224 | |Notify digits | 1225 | |<----------| | 1226 | |Notify Response | 1227 | |<----------| | 1228 | | Add TermA SD:ringbacktone 1229 | | Add $, Local SDP Info -underspecified 1230 |<-----------| | | 1231 |RingBack Tone | | 1232 | |---------->| | 1233 | |Modify Resp TermA | 1234 | |Add Resp Local SDP (Specified) 1235 | | |---------->| 1236 | | |Add Phy | 1237 | | |Add $ Local(Underspecified) 1238 | | | Remote SDP (Specified) 1239 | | |<----------| 1240 | | |Add Resp Phy 1241 | | |Add Resp EphB Local Specified 1242 | |<----------| | 1243 | |Modify TermA SendRecv | 1244 | |Modify EphA Remote(Specified) SendRecv 1245 | |---------->| | 1246 | |Modify Resp| | 1247 |/----------------------------------\| 1248 | RTP MEDIA | 1249 |\----------------------------------/| 1250 |----------->| | | 1251 |UserA goes OnHook | | 1252 | |---------->| | 1253 | |Notify OnHook | 1254 | |<----------| | 1255 | |Notify Resp| | 1256 | |<----------| | 1257 | |Subtract TermA | 1258 | |Subtract EphA | 1259 | |---------->| | 1260 | |Subtract Resp TermA | 1261 | |Subtract Resp EphA Statistics 1262 | | |Subtract Phy 1263 | | |Subtract EphB 1264 | | |<----------| 1265 | | |Subtract Resp Phy 1266 | | |Subtract Resp EphB Statis 1267 |____________|___________|___________| 1269 The MGC generates modify command for to the residential gateway to 1270 check for offhook for Termination TermA. In this message the event 1271 offhook has an embedded signal descriptor and embedded event descriptor. 1272 The embedded signal descriptor is sent for application of dial tone 1273 immediately after the detection of the offhook event and the event 1274 descriptor then will be updated with the onhook and the digit map 1275 completion event. The Digit map is also defined in the digit map 1276 descriptor. 1278 Step 1 1279 MGC to RGW: 1280 MEGACO/1 [216.33.33.61]:27000 1281 Transaction = 1234 { 1282 Context = - { 1283 Modify = TermA { 1284 Media { 1285 LocalControl { 1286 Mode = Receiveonly} 1287 }, 1288 DigitMap= Dmap1 {(2XXX)} 1289 Events = 1111 {al/of Embed {signals {cg/dt}, Events=1112 {al/on}, 1290 {dd/ce {Dmap1}}} 1291 } 1292 } 1293 } 1295 The MG after receiving the MGC's message responds to it. 1297 Step 2 1298 RGW to MGC: 1299 MEGACO/1 [209.110.59.34]: 25000 1300 Reply = 1234 { 1301 Context = - {Modify = TermA} 1302 } 1304 When the user A goes offhook RGW detects the offhook event and as it 1305 is listed in the event descriptor report the event detection using 1306 Notify command. 1308 Step 3 1309 RGW to MGC: 1310 MEGACO/1 [209.110.59.34]:25000 1311 Transaction = 2000 { 1312 Context = - { 1313 Notify = TermA {ObservedEvents =1111 { 1314 20010202T10000000:al/of}} 1315 } 1316 } 1317 the MGC responds with the Notify response. 1319 Step 4 1320 MGC to RGW: 1321 MEGACO/1 [216.33.33.61]: 27000 1322 Reply = 2000 { 1323 Context = - {Notify = TermA} 1324 } 1326 The user gets Dial tone as part of Embedded descriptor processing. The 1327 digit map is active on the termination TermA. When the user dials the 1328 digits they are reported to MGC through Notify command. 1330 Step 5 1331 RGW to MGC: 1332 MEGACO/1 [209.110.59.34]: 25000 1333 Transaction = 2001 { 1334 Context = - { 1335 Notify = TermA {ObservedEvents =1112 { 1336 20010202T10010000:dd/ce {ds="2992", Meth=FM}}} 1337 } 1338 } 1340 MGC after receiving the Notify command responds back with the Notify 1341 response. 1343 Step 6 1344 MGC to RGW: 1345 MEGACO/1 [216.33.33.61]: 27000 1346 Reply = 2001 { 1347 Context = - {Notify = TermA} 1348 } 1350 The MGC generates the Add command for adding the physical termination 1351 TermA and to create an ephemeral termination EphA. The local SDP 1352 information for the ephemeral termination EphA is under specified to 1353 enable the RGW to allocate the necessary values by itself. The mode 1354 of the two terminations is set to receive only. 1356 Step 7 1357 MGC to RGW: 1358 MEGACO/1 [216.33.33.61]: 27000 1359 Transaction = 1235 { 1360 Context = $ { 1361 Add = TermA { 1362 Signals {cg/rt} 1363 Media { 1364 { 1365 LocalControl { 1366 Mode = ReceiveOnly, 1367 }, 1368 } 1369 Add = $ { 1370 Media { 1371 { 1372 LocalControl { 1373 Mode = ReceiveOnly, 1374 }, 1375 Local { 1376 v=0 1377 c=IN IP4 $ 1378 m=audio $ RTP/AVP 4 1379 } 1380 } 1381 } 1382 } 1383 } 1385 MG after creating the context adds the physical termination TermA. In 1386 this case MG creates a context with ContextId 1. The ephemeral 1387 termination EphA is created and added to the context 1. The MG 1388 reserves resources for the local SDP information. In this case the 1389 IP address allocated is 209.110.59.33 and the port number used is 1390 30000. The MG responds to the Add command with this information in 1391 the response to MGC. 1393 Step 8 1394 RGW to MGC: 1395 MEGACO/1 [209.110.59.34]: 25000 1396 Reply = 1235 { 1397 Context = 1 { 1398 Add = TermA, 1399 Add=EphA { 1400 Media { 1401 Local { 1402 v=0 1403 c=IN IP4 209.110.59.33 1404 m=audio 30000 RTP/AVP 4 1405 a=recvonly 1406 }; RTP profile for G.723 is 4 1407 } 1408 } 1409 } 1410 } 1411 } 1413 In this example as mentioned earlier we doesn't assume any specific 1414 signaling in the other side of the Trunking gateway. This eliminates 1415 the complexity of reporting the address information and alerting the 1416 end user. The MGC then "Adds" a physical termination. The wildcard $ 1417 is used here to enable the Trunking gateway to choose one of its 1418 trunks on the other side of the Trunking gateway. The ephemeral 1419 termination is requested to create with the under specified SDP local 1420 information and the remote SDP information. 1422 Step 9 1423 MGC to TGW 1424 MEGACO/1 [216.33.33.61]: 27000 1425 Transaction = 1236 { 1426 Context = $ { 1427 Add = Trunk1/$ {Media { 1428 LocalControl {Mode = SendRecv}}, 1429 }, 1430 Add = $ {Media { 1431 LocalControl { 1432 Mode = Receiveonly, 1433 }, 1434 Local { 1435 v=0 1436 c=IN IP4 $ 1437 m=audio $ RTP/AVP 4 1439 }, 1440 Remote { 1441 v=0 1442 c=IN IP4 209.110.59.33 1443 m=audio 30000 RTP/AVP 4 1444 } ; RTP profile for G.723 is 4 1445 } 1446 } 1447 } 1448 } 1449 } 1451 The Trunking gateway then processes the command and does the necessary 1452 signaling towards the other side of the Trunking gateway. The seized 1453 trunk identifier is returned in the Add response for physical 1454 termination. In the response for the ephemeral termination, the TGW 1455 returns the local information of the ephemeral termination created. 1456 In this example the TGW creates a context with ContextID 2. 1458 Step 10 1459 TGW to MGC: 1460 MEGACO/1 [207.176.47.89]: 26000 1461 Reply = 1236 { 1462 Context = 2 { 1463 Add = Trunk1/line1, 1464 Add = EphB{ 1465 Media { 1466 Local { 1467 v=0 1468 c=IN IP4 207.176.47.90 1469 m=audio 40000 RTP/AVP 4 1470 } 1471 } ; RTP profile for G723 is 4 1472 } 1473 } 1474 } 1476 As mention earlier, How the MGC receives the indication about the 1477 status of the end user is out of scope of this call flow. But once the 1478 MGC receives the users status it forwards the remote SDP information 1479 for the RGW and change the mode for the termination both at RGW and 1480 TGW to SendRecv. 1482 Step 11 1483 MGC to RGW: 1484 MEGACO/1 [216.33.33.61]: 27000 1485 Transaction = 1237 { 1486 Context = 1 { 1487 Modify = TermA { 1488 Media { 1489 LocalControl { 1490 Mode = sendrecv} 1491 } 1492 } 1494 Signals { } 1495 }, 1496 Modify = EphA { 1497 Media { 1498 LocalControl { 1499 Mode = sendrecv} 1500 Remote { 1501 v=0 1502 c=IN IP4 207.176.47.90 1503 m=audio 40000 RTP/AVP 4 1504 } 1505 } ; RTP profile for G723 is 4 1506 } 1507 } 1508 } 1509 } 1511 The RGW after receiving the Modify command from MGC responds back with 1512 the response. 1514 Step 12 1515 RGW to MGC: 1516 MEGACO/1 [209.110.59.34]: 25000 1517 Reply = 1237 { 1518 Context = 1 {Modify = TermA, Modify = EphA} 1519 } 1521 The MGC also generates commands to the TGW to change the mode of the 1522 Ephemeral termination to send receive. Thus enabling the virtual 1523 voice path between the two ephemeral terminations. 1525 Step 13 1526 MGC to TGW: 1527 MEGACO/1 [216.33.33.61]: 27000 1528 Transaction = 1238 { 1529 Context = 2 { 1530 Modify = Trunk1/line1 { 1531 Media { 1532 LocalControl { 1533 Mode = sendrecv} 1534 } 1535 } 1536 }, 1537 Modify = EphB { 1538 Media { 1539 LocalControl { 1540 Mode = sendrecv} 1541 } 1542 } 1543 } 1544 } 1546 The TGW after receiving the mode change information in Modify command 1547 responds to it. 1549 Step 14 1550 TGW to MGC: 1551 MEGACO/1 [207.176.47.89]: 26000 1552 Reply = 1238 { 1553 Context = 2 {Modify = Trunk1/line1, Modify = EphB} 1554 } 1555 Now RTP media flow takes place. In the example the UserA goes onhook 1556 to terminate the call. The RGW after detecting the event reports the 1557 same to MGC in the Notify command. 1559 Step 15: 1560 RGW to MGC: 1561 MEGACO/1 [209.110.59.34]: 25000 1562 Transaction = 2002 { 1563 Context = 1 { 1564 Notify = TermA {ObservedEvents =1112 { 1565 20010202T10030000:al/on} 1566 } 1567 } 1568 } 1569 The MGC responds to the MG1s Notify message. 1571 Step 16 1572 MGC to MG1: 1573 MEGACO/1 [216.33.33.61]: 27000 1574 Reply = 2002 { 1575 Context = 1 { 1576 Notify = TermA 1577 } 1578 } 1579 The MGC now generates subtract commands both to the RGW and the TGW. 1580 The mechanism of generating call progress tone towards the called user 1581 is not shown for simplicity. The two Subtract commands are clubbed in 1582 a single action. 1584 Step 17 1585 MGC to RGW 1586 MEGACO/1 [216.33.33.61]: 27000 1587 Transaction = 1239 { 1588 Context = 1 { 1589 Subtract = TermA {Audit{ }}, 1590 Subtract = EphA {Audit{Statistics}} 1591 } 1592 } 1593 The MG subtracts the two terminations from the context. The context 1594 itself is deleted with the subtract of the last termination from it. 1595 The MG1 responds to this transaction from MGC with statistics on 1596 ephemeral termination. 1598 Step 18 1599 RGW to MGC: 1600 MEGACO/1 [209.110.59.34]:25000 1601 Reply = 1239 { 1602 Context = 1 { 1603 Subtract = TermA 1604 Subtract = EphA { 1605 Statistics { 1606 rtp/ps=1234, ; packets sent 1607 nt/os=56789, ; octets sent 1608 rtp/pr=987, ; packets received 1609 nt/or=65432, ; octets received 1610 rtp/pl=10, ; % packets lost 1611 rtp/jit=30, 1612 rtp/delay=30 ; average latency 1613 } 1614 } 1615 } 1616 } 1618 The MGC generates similar command towards the TGW 1620 Step 19 1621 MGC to TGW: 1622 MEGACO/1 [216.33.33.61]: 27000 1623 Transaction = 1240 { 1624 Context = 2 { 1625 Subtract = Trunk1/line1{Audit{ }}, 1626 Subtract = EphB {Audit{Statistics}} 1627 } 1628 } 1629 The TGW responds to the subtract commands generated by MGC. 1631 Step 26 1632 TGW to MGC: 1633 MEGACO/1 [209.110.59.34]:25000 1634 Reply = 1240 { 1635 Context = 2 { 1636 Subtract = Trunk1/line1 1637 Subtract = EphB { 1638 Statistics { 1639 rtp/ps=987, ; packets sent 1640 nt/os=65432, ; octets sent 1641 rtp/pr=1234, ; packets received 1642 nt/or=56789, ; octets received 1643 rtp/pl=10, ; % packets lost 1644 rtp/jit=30, 1645 rtp/delay=30 ; average latency 1646 } 1647 } 1649 } 1650 } 1652 2.3 Call between Trunking gateway and Residential Gateway 1654 The earlier section illustrated the call between a residential user and 1655 a Trunking gateway. The call was initiated by the Residential gateway. 1656 In this call scenario we will illustrate the case where the call 1657 terminates on the Residential gateway when originated by the 1658 Trunking gateway. Even in this call flow we will assume that signaling 1659 beyond the Trunking gateway is taken care by an external entity, to 1660 avoid CAS/CCS specific details. 1662 ___________________________________________________________ 1663 | | | 1664 TGW | MGC | RGW1 | USERB 1665 _________ ___|___________|______________|_________________ 1666 | | | | 1667 | | | | 1668 |<----------| | | 1669 | Add Phy SD:ringbacktone | 1670 | Add $, Local SDP Info -underspecified | 1671 |---------->| | | 1672 |Add Resp Phy | | 1673 |Add Resp Local SDP (Specified) | 1674 | |---------->| | 1675 | |Add TermB SD:Ring ED:offhook | 1676 | |Add $ Local(Underspecified) | 1677 | | Remote SDP (Specified) | 1678 | | | | 1679 | | |------------------>| 1680 | | | UserB Phone Ringing 1681 | |<----------| | 1682 | |Add Resp TermB | 1683 | |Add Resp EphB Local Specified | 1684 | | |<------------------| 1685 | | |UserB goes Offhook | 1686 | |<----------| | 1687 | |Notify Offhook | 1688 | |---------->| | 1689 | | Notify Resp | 1690 |<----------| | | 1691 |Modify Phy SendRecv | | 1692 |Modify EphA Remote(Specified) SendRecv | 1693 |---------->| | | 1694 |Modify Resp| | | 1695 | |---------->| | 1696 | |Modify Phy SendRecv | 1697 | |Modify EphB SendRecv | 1698 | |<----------| | 1699 | |Modify Resp| | 1700 |/-----------------------------------------\| 1701 | RTP MEDIA | 1702 |\-----------------------------------------/| 1703 | |---------->| | 1704 | |Modify TermB SD:BusyTone | 1705 | | |------------------>| 1706 | | | Busy tone to UserB| 1707 | |<----------| | 1708 | |Modify Resp| | 1709 |<----------| | | 1710 |Subtract Phy | | 1711 |Subtract EphA | | 1712 |---------->| | | 1713 |Subtract Resp Phy | | 1714 |Subtract Resp EphA Statistics | 1715 | | |<------------------| 1716 | | | UserB goes Onhook | 1717 | |<----------| | 1718 | |Notify Onhook | 1719 | |---------->| | 1720 | |Notify Resp| | 1721 | |---------->| | 1722 | |Subtract TermB | 1723 | |Subtract EphB | 1724 | |<----------| | 1725 | |Subtract Resp TermB | 1726 | |Subtract Resp EphB Statistics | 1727 |___________|___________|___________________| 1729 The Media Gateway controller is intimated about the call initiation 1730 from the other side of the Trunking gateway. The MGC then indicates 1731 the TGW to seize a trunk using the Add command with $ (choose) 1732 wildcard. The MGC also requests for creation of an ephemeral 1733 termination using another Add command in the same action request. The 1734 Context Id specified by MGC is $ indicating that the TGW needs to 1735 create a context and "Add" these terminations in the new context. 1737 Step 1 1738 MGC to TGW: 1739 MEGACO/1 [216.33.33.61]: 27000 1740 Transaction = 1234 { 1741 Context = $ { 1742 Add = Trunk1/$ {Media { 1743 LocalControl {Mode = recvonly}}, 1744 }, 1745 Add = $ {Media { 1746 LocalControl { 1747 Mode = Receiveonly, 1748 }, 1749 Local { 1750 v=0 1751 c=IN IP4 $ 1752 m=audio $ RTP/AVP 4 1754 } 1755 } 1756 } 1757 } 1758 } 1759 } 1761 The TGW after receiving the Add request from MGC creates a context. In 1762 this example the ContextID allocated for the new context is 2. The 1763 physical termination chosen by the TGW is Trunk1/line1. The mode of 1764 the termination is set to Receiveonly. The TGW creates an ephemeral 1765 termination with the SDP information specified by MGC. The response 1766 contains all the specified values for the SDP information. To avoid 1767 complexity in this call flow no reserve group and reserve value 1768 properties are used. It should be assumed that they are all "OFF". In 1769 this example the TGW reserved 207.176.47.90 as the IP address for the 1770 RTP media stream and port number as 40000. 1772 Step 2: 1774 TGW to MGC: 1775 MEGACO/1 [207.176.47.89]: 26000 1776 Reply = 1234 { 1777 Context = 2 { 1778 Add = Trunk1/line1, 1779 Add = EphA{ 1780 Media { 1781 Local { 1782 v=0 1783 c=IN IP4 207.176.47.90 1784 m=audio 40000 RTP/AVP 4 1785 } 1786 } ; RTP profile for G723 is 4 1787 } 1788 } 1789 } 1791 The MGC after receiving the response from TGW initiates the UserB 1792 alerting towards the RGW. This is done by MGC in the ADD command for 1793 the physical termination TermB. The MGC uses $ contextID. Indicating 1794 the creation of Context at MG. The Ephemeral termination is requested 1795 to create. The Remote SDP information is also passed as the parameters 1796 in the media descriptor. The signal descriptor in the Add command for 1797 physical termination enables RGW to apply the ring signal on the 1798 termination TermB. 1800 Step 3 1801 MGC to RGW: 1802 MEGACO/1 [216.33.33.61]: 27000 1803 Transaction = 1235 { 1804 Context = $ { 1805 Add = TermB { 1806 Signals { al/ri } 1807 Events= 1111 { al/of Events = 1112 { al/on } } 1808 Media { 1809 { 1810 LocalControl { 1811 Mode = ReceiveOnly, 1812 }, 1813 } 1814 Add = $ { 1815 Media { 1816 { 1817 LocalControl { 1818 Mode = ReceiveOnly, 1819 }, 1820 Local { 1821 v=0 1822 c=IN IP4 $ 1823 m=audio $ RTP/AVP 4 1824 } 1825 remote { 1826 v=0 1827 c=IN IP4 207.176.47.90 1828 m=audio 40000 RTP/AVP 4 1829 } 1830 } ; RTP profile for G723 is 4 1831 } 1832 } 1833 } 1835 The RGW after receiving the transaction request from MGC first creates 1836 a context. In this example the contextID allocated is 1. The RGW 1837 "adds" the termination TermB to context 1 and as part of the signal 1838 descriptor processing applies the "ring" signal on the termination. 1839 The Events descriptor lists the offhook event of analog line 1840 supervision package. The requestId specified in this example is 1841 1111. The RGW also creates the ephemeral termination EphB. Whose 1842 remote SDP information is specified by MGC and the local SDP 1843 information is allocated and reserved by RGW. In this example the 1844 RGW allocates an IP address of 209.110.59.33 and port number 30000. 1845 The mode of the ephemeral termination is set to receive only. 1847 Step 4 1849 RGW to MGC: 1851 MEGACO/1 [209.110.59.34]: 25000 1852 Reply = 1235 { 1853 Context = 1 { 1854 Add = TermB, 1855 Add=EphB { 1856 Media { 1857 Local { 1858 v=0 1859 c=IN IP4 209.110.59.33 1860 m=audio 30000 RTP/AVP 4 1861 a=recvonly 1862 } ; RTP profile for G.723 is 4 1863 } 1864 } 1865 } 1866 } 1867 } 1869 The UserB goes Offhook after hearing the "ring" signal. The offhook 1870 event is reported to the MGC as observed event descriptor in Notify 1871 command. 1873 Step 5 1874 RGW to MGC: 1875 MEGACO/1 [209.110.59.34]: 25000 1876 Transaction = 2000 { 1877 Context = 1 { 1878 Notify = TermB {ObservedEvents =1111 { 1879 20010202T10001000:al/of}} 1880 } 1881 } 1882 The MGC responds with the Notify response. 1884 Step 6 1885 MGC to RGW: 1886 MEGACO/1 [216.33.33.61]: 27000 1887 Reply = 2000 { 1888 Context = - {Notify = TermB} 1889 } 1891 The MGC now generates commands to both RGW and TGW. These commands are 1892 generated to modify the mode of the physical and ephemeral 1893 terminations towards both RGW and TGW. 1895 Step 7: 1896 MGC to RGW 1897 MEGACO/1 [216.33.33.61]: 27000 1898 Transaction = 1236 { 1899 Context = 1 { 1900 Modify = TermB { 1901 Media { 1902 LocalControl { 1903 Mode = sendrecv} 1904 } 1905 } 1906 Modify = EphB { 1907 Media { 1908 LocalControl { 1909 Mode = sendrecv} 1910 } 1911 } 1912 } 1913 } 1915 The RGW responds with the Transaction response for the commands sent 1916 for both physical and ephemeral termination. 1917 Step 8 1918 RGW to MGC: 1919 MEGACO/1 [209.110.59.34]: 25000 1920 Reply= 1236 { 1921 Context = 1 { 1922 Modify = TermB {} 1923 Modify = EphB { 1924 } 1925 } 1926 } 1928 The MGC also generates similar command towards the Trunking gateway. 1929 The MGC in the Modify for the ephemeral termination also specifies the 1930 remote SDP information, and this enables the TGW to change the mode of 1931 the terminations to send and receive. 1933 Step 9 1934 MGC to TGW: 1935 MEGACO/1 [216.33.33.61]: 27000 1936 Transaction = 1237 { 1937 Context = 2 { 1938 Modify = Trunk1/line1 { 1939 Media { 1940 LocalControl { 1941 Mode = SendRecv} 1942 } 1943 } 1944 Modify = EphA { 1945 Media { 1946 LocalControl { 1947 Mode = SendRecv} 1948 Remote { 1949 v=0 1950 c=IN IP4 207.176.47.90 1951 m=audio 40000 RTP/AVP 4 1952 } 1954 } ; RTP profile for G723 is 4 1955 } 1956 } 1957 } 1958 } 1960 The Trunking gateway responds to the MGC message and changes the mode 1961 for both the terminations to Send and receive. 1963 Step 10 1964 TGW to MGC: 1965 MEGACO/1 [207.176.47.89]: 26000 1966 Reply = 1237 { 1967 Context = 2 { 1968 Modify = Trunk1/line1, 1969 Modify = EphA { 1970 } 1971 } 1972 } 1973 Once both the terminations mode is change to send receive the two 1974 users can start the conversation. The media stream is established. 1975 The user to the other side of the Trunking gateway terminates the 1976 Call. The MGC is updated with this information by the external 1977 entity. The MGC generates a busy signal towards UserB connected to 1978 the RGW. 1980 Step 11 1981 MGC to RGW: 1982 MEGACO/1 [216.33.33.61]:27000 1983 Transaction = 1238 { 1984 Context = 1 { 1985 Modify = TermB { 1986 Signals { cg/bt } 1987 } 1988 } 1989 } 1990 } 1991 The RGW as part of signal descriptor processing plays the busy tone 1992 towards the UserB termination TermB. The response is generated after 1993 processing the command from MGC. 1995 Step 12 1996 RGW to MGC: 1997 MEGACO/1 [209.110.59.34]: 25000 1998 Reply = 1238 { 1999 Context = 1 { 2000 Modify = TermB { 2001 } 2002 } 2003 } 2005 The MGC terminates the call by generating Subtract command for both 2006 the terminations in TGW and RGW. 2008 Step 13 2009 MGC to TGW: 2010 MEGACO/1 [216.33.33.61]: 27000 2011 Transaction = 1239 { 2012 Context = 2 { 2013 Subtract = Trunk1/line1{Audit{ }}, 2014 Subtract = EphA {Audit{Statistics}} 2015 } 2016 } 2017 The TGW responds with the Statistics in the Subtract response for the 2018 ephemeral termination. The context is created as an side effect of 2019 deleting both the terminations in the context. 2021 Step 14: 2022 TGW to MGC: 2023 MEGACO/1 [207.176.47.89]:26000 2024 Reply = 1239 { 2025 Context = 2 { 2026 Subtract = Trunk1/line1 2027 Subtract = EphA { 2028 Statistics { 2029 rtp/ps=987, ; packets sent 2030 nt/os=65432, ; octets sent 2031 rtp/pr=1234, ; packets received 2032 nt/or=56789, ; octets received 2033 rtp/pl=10, ; % packets lost 2034 rtp/jit=30, 2035 rtp/delay=30 ; average latency 2036 } 2037 } 2038 } 2039 } 2040 The MGC generates similar command towards the RGW to delete the 2041 physical and ephemeral terminations. 2043 Step 15 2044 MGC to RGW: 2045 MEGACO/1 [216.33.33.61]: 27000 2046 Transaction = 1240 { 2047 Context = 1 { 2048 Subtract = TermB {Audit{ }}, 2049 Subtract = EphB {Audit{Statistics}} 2050 } 2051 } 2052 The RGW responds with the statistics for the ephemeral termination in 2053 the Subtract response. 2055 Step 16 2056 RGW to MGC: 2057 MEGACO/1 [209.110.59.34]:25000 2058 Reply = 1240 { 2059 Context = 1 { 2060 Subtract = TermB 2061 Subtract = EphB { 2062 Statistics { 2063 rtp/ps=1234, ; packets sent 2064 nt/os=56789, ; octets sent 2065 rtp/pr=987, ; packets received 2066 nt/or=65432, ; octets received 2067 rtp/pl=10, ; % packets lost 2068 rtp/jit=30, 2069 rtp/delay=30 ; average latency 2070 } 2071 } 2072 } 2073 } 2074 The Call is terminated with the response received from RGW. The MGC 2075 generates the initial Modify command to check for offhook on the 2076 termination TermB. This takes the termination TermB to idle state and 2077 the UserB is ready to ready to generate and receive further calls. 2079 2.4 Call between two Trunking gateways 2080 The earlier three sections illustrated the calls between two 2081 residential gateways, and between residential gateway and Trunking 2082 gateway. This two Trunking gateway call flow scenario illustrates call 2083 between two users connected to the other side of the Trunking gateway. 2084 Even in this scenario to avoid unnecessary complexity we still assume 2085 that some external entity conveys the necessary signaling information 2086 to the MGC to enable it to control the two Trunking gateways. The 2087 CAS/CCS signaling details towards the other side of the each Trunking 2088 gateway is avoided for simplicity. This boils down to the message 2089 generation from MGC for enabling media flow. No signaling is done on 2090 either the physical or ephemeral termination. 2092 __________________________________________________________ 2093 | | | 2094 TGW1 | MGC | RGW1 | TGW2 2095 _________ ___|___________|______________|_________________ 2096 | | | | 2097 | | | | 2098 |<----------| | | 2099 | Add Phy SD:ringbacktone | 2100 | Add $, Local SDP Info -underspecified | 2101 |---------->| | | 2102 |Add Resp Phy | | 2103 |Add Resp Local SDP (Specified) | 2104 | |---------->| | 2105 | |Add Phy SD:Ring ED:offhook | 2106 | |Add $ Local(Underspecified) | 2107 | | Remote SDP (Specified) | 2108 | | | | 2109 | |<----------| | 2110 | |Add Resp Phy | 2111 | |Add Resp EphB Local Specified | 2112 |<----------| | | 2113 |Modify Phy SendRecv | | 2114 |Modify EphA Remote(Specified) SendRecv | 2115 |---------->| | | 2116 |Modify Resp| | | 2117 | |---------->| | 2118 | |Modify Phy SendRecv | 2119 | |Modify EphB SendRecv | 2120 | |<----------| | 2121 | |Modify Resp| | 2122 |/-----------------------------------------\| 2123 | RTP MEDIA | 2124 |\-----------------------------------------/| 2125 |<----------| | | 2126 |Subtract Phy | | 2127 |Subtract EphA | | 2128 |---------->| | | 2129 |Subtract Resp Phy | | 2130 |Subtract Resp EphA Statistics | 2131 | |---------->| | 2132 | |Subtract Phy | 2133 | |Subtract EphB | 2134 | |<----------| | 2135 | |Subtract Resp Phy | 2136 | |Subtract Resp EphB Statistics | 2137 |___________|___________|___________________| 2139 When the MGC receives the call establishment from one side of the 2140 Trunking gateway it generates two ADD commands in a single action. The 2141 action request includes creation of Context, choosing of physical 2142 termination and adding the same to the context created and creating 2143 of ephemeral termination and adding this to the newly created 2144 context. The local SDP parameters are under specified. The TGW1 in 2145 its response need to specify these under specified parameters. 2147 Step 1 2148 MGC to TGW1: 2149 MEGACO/1 [216.33.33.61]: 27000 2150 Transaction = 1234 { 2151 Context = $ { 2152 Add = Trunk1/$ {Media { 2153 LocalControl {Mode = recvonly}}, 2154 }, 2155 Add = $ {Media { 2156 LocalControl { 2157 Mode = Receiveonly, 2158 }, 2159 Local { 2160 v=0 2161 c=IN IP4 $ 2162 m=audio $ RTP/AVP 4 2164 } 2165 } 2166 } 2167 } 2168 } 2169 } 2170 The TGW after receiving the Add request from MGC creates a context. 2171 In this example the ContextID allocated for the new context is 1. The 2172 physical termination chosen by the TGW is Trunk1/line1. The mode of 2173 the termination is set to Receiveonly. The TGW creates an ephemeral 2174 termination with the SDP information specified by MGC. The response 2175 contains all the specified values for the SDP information. To avoid 2176 complexity in this call flow no reserve group and reserve value 2177 properties are used. It should be assumed that they are all "OFF". 2178 In this example the TGW reserved 209.110.59.33 as the IP address for 2179 the RTP media stream and port number as 40000. 2181 Step 2: 2182 TGW1 to MGC: 2183 MEGACO/1 [209.110.59.34]: 25000 2184 Reply = 1234 { 2185 Context = 1 { 2186 Add = Trunk1/line1, 2187 Add = EphA{ 2188 Media { 2189 Local { 2190 v=0 2191 c=IN IP4 209.110.59.33 2192 m=audio 40000 RTP/AVP 4 2193 } 2194 } ; RTP profile for G723 is 4 2195 } 2196 } 2197 } 2199 In this example as mentioned earlier it doesn't assume any specific 2200 signaling in the other side of the Trunking gateway. Thus this 2201 eliminates the complexion of reporting the address information and 2202 alerting the end user. The MGC hence "Adds" a physical termination. 2203 The wildcard $ is used here to enable the Trunking gateway to choose 2204 one of its trunks on the other side of the Trunking gateway. The 2205 ephemeral termination is requested to create with the under specified 2206 SDP local information and the remote SDP information. 2208 Step 3 2209 MGC to TGW2: 2210 MEGACO/1 [216.33.33.61]: 27000 2211 Transaction = 1235 { 2212 Context = $ { 2213 Add = Trunk2/$ {Media { 2214 LocalControl {Mode = SendRecv}}, 2215 }, 2216 Add = $ {Media { 2217 LocalControl { 2218 Mode = Receiveonly, 2219 }, 2220 Local { 2221 v=0 2222 c=IN IP4 $ 2223 m=audio $ RTP/AVP 4 2225 }, 2226 Remote { 2227 v=0 2228 c=IN IP4 209.110.59.33 2229 m=audio 40000 RTP/AVP 4 2230 } ; RTP profile for G.723 is 4 2231 } 2232 } 2233 } 2234 } 2235 } 2236 The Trunking gateway2 then process the command and does the necessary 2237 signaling towards the other side of the Trunking gateway. The seized 2238 trunk identifier is returned in the Add response for physical 2239 termination. In the response for the ephemeral termination, the TGW 2240 returns the local information of the ephemeral termination created. 2241 In this example the TGW creates a context with ContextID 2. 2243 Step 4 2244 TGW2 to MGC: 2245 MEGACO/1 [207.176.47.89]: 26000 2246 Reply = 1235 { 2247 Context = 2 { 2248 Add = Trunk2/line1, 2249 Add = EphB{ 2250 Media { 2251 Local { 2252 v=0 2253 c=IN IP4 207.176.47.90 2254 m=audio 40000 RTP/AVP 4 2255 } 2256 } ; RTP profile for G723 is 4 2257 } 2258 } 2259 } 2260 Once these MGC receives the answer of the call by the end user (through 2261 an entity outside the scope of the flow), changes the mode of the 2262 termination towards the both Trunking gateways. The MGC also indicates 2263 the remote SDP information for the TGW1.Thus enabling the exchange of 2264 media parameter information to both the Trunking gateways. 2266 Step 5 2267 MGC to TGW1: 2268 MEGACO/1 [216.33.33.61]: 27000 2269 Transaction = 1236 { 2270 Context = 1 { 2271 Modify = Trunk1/line1 { 2272 Media { 2273 LocalControl { 2274 Mode = SendRecv} 2275 } 2276 } 2277 Modify = EphA { 2278 Media { 2279 LocalControl { 2280 Mode = SendRecv} 2281 Remote { 2282 v=0 2283 c=IN IP4 207.176.47.90 2284 m=audio 40000 RTP/AVP 4 2285 } 2286 } ; RTP profile for G723 is 4 2287 } 2288 } 2289 } 2290 } 2292 The TGW1 after receiving the command from MGC does the necessary 2293 processing to update and processing the remote SDP information. The 2294 mode of the terminations is modified to send receive. The response 2295 of the transaction is sent back to MGC. 2297 Step 6 2298 TGW1 to MGC: 2299 MEGACO/1 [209.110.59.34]: 25000 2300 Reply = 1236 { 2301 Context = 1 { 2302 Modify = Trunk1/line1, 2303 Modify = EphA { 2304 } 2305 } 2307 } 2308 Similar command is generated from the MGC towards the second 2309 Trunking gateway. 2311 Step 7 2312 MGC to TGW1: 2313 MEGACO/1 [216.33.33.61]: 27000 2314 Transaction = 1237 { 2315 Context = 2 { 2316 Modify = Trunk2/line1 { 2317 Media { 2318 LocalControl { 2319 Mode = sendrecv} 2320 } 2321 } 2322 }, 2323 Modify = EphB { 2324 Media { 2325 LocalControl { 2326 Mode = sendrecv} 2327 } 2328 } 2329 } 2330 } 2331 The TGW2 after receiving the mode change information in Modify 2332 command responds to it. 2334 Step 8 2335 TGW1 to MGC: 2336 MEGACO/1 [209.110.59.34]: 25000 2337 Reply = 1237 { 2338 Context = 2 {Modify = Trunk1/line1, Modify = EphB} 2339 } 2340 The RTP media flow takes place once the modes of the terminations are 2341 changed to send receive. The MGC is intimated about the call clearing 2342 from an external entity. The MGC then generates subtract commands to 2343 both the TGWs. 2345 Step 9 2346 MGC to TGW2: 2347 MEGACO/1 [216.33.33.61]: 27000 2348 Transaction = 1238 { 2349 Context = 1 { 2350 Subtract = Trunk1/line1{Audit{ }}, 2351 Subtract = EphA {Audit{Statistics}} 2352 } 2353 } 2354 The TGW responds with the Statistics in the Subtract response for the 2355 ephemeral termination. The context is created as an side effect of 2356 deleting both the terminations in the context. 2358 Step 10: 2359 TGW2 to MGC: 2360 MEGACO/1 [207.176.47.89]:26000 2361 Reply = 1238 { 2362 Context = 1 { 2363 Subtract = Trunk1/line1 2364 Subtract = EphA { 2365 Statistics { 2366 rtp/ps=987, ; packets sent 2367 nt/os=65432, ; octets sent 2368 rtp/pr=1234, ; packets received 2369 nt/or=56789, ; octets received 2370 rtp/pl=10, ; % packets lost 2371 rtp/jit=30, 2372 rtp/delay=30 ; average latency 2373 } 2374 } 2375 } 2376 } 2377 A similar command is generated from the MGC towards the second TGW. 2378 Step 11 2379 MGC to TGW: 2380 MEGACO/1 [216.33.33.61]: 27000 2381 Transaction = 1239 { 2382 Context = 2 { 2383 Subtract = Trunk2/line1{Audit{ }}, 2384 Subtract = EphB {Audit{Statistics}} 2385 } 2386 } 2387 The TGW responds to the subtract commands generated by MGC. 2389 Step 12 2390 TGW to MGC: 2391 MEGACO/1 [209.110.59.34]:25000 2392 Reply = 1239 { 2393 Context = 2 { 2394 Subtract = Trunk2/line1 2395 Subtract = EphB { 2396 Statistics { 2397 rtp/ps=1234, ; packets sent 2398 nt/os=56789, ; octets sent 2399 rtp/pr=987, ; packets received 2400 nt/or=65432, ; octets received 2401 rtp/pl=10, ; % packets lost 2402 rtp/jit=30, 2403 rtp/delay=30 ; average latency 2404 } 2405 } 2406 } 2407 } 2408 The two Trunking gateways are now ready to receive further commands 2409 from MGC. The terminations are present in the idle state. 2411 2.5 Call between Residential gateway and SS7 trunk in TGW 2412 The calls flow scenarios from 2.2 to 2.4 illustrated the Trunking 2413 gateway without considering the signaling performed at the other side 2414 of the Trunking gateway. In this section we will illustrate the call 2415 flow scenario similar to the one in section 2.2. The emphasis here will 2416 be both on the Megaco messages exchanged between MG and MGC and also 2417 the signaling that towards the other side of the Trunking gateway. 2418 Here in this example the CCS SS7 is assumed. The packages that 2419 supported are Call progress tone generation package, analog line 2420 supervision package, generic package, RTP package and Network package 2421 for the RGW and Network and RTP package for the TGW. 2423 _____________________________________________________________________ 2424 | | | | 2425 USERA | RGW1 | MGC | TGW | SS7 Switch 2426 _____________|___________|___________|______________|________________ 2427 | | | | | 2428 | | | | | 2429 | |<----------| | | 2430 | |Modify to | | | 2431 | |check offhook | | 2432 | |---------->| | | 2433 | |Modify Resp| | | 2434 |----------->| | | | 2435 |UserA offhook | | | 2436 | |---------->| | | 2437 | |Notify offhook | | 2438 | |<----------| | | 2439 | |Notify Resp| | | 2440 | |<----------| | | 2441 | |Modify SG:dialtone | | 2442 | |ED:al/on,dd/ce{Dmap1} | | 2443 | |DM:Dmap1 = 2XXX | | 2444 |<-----------| | | | 2445 |Dial Tone |---------->| | | 2446 | |Modify Resp| | | 2447 | | | | | 2448 |----------->| | | | 2449 |User Dials Digits | | | 2450 | |---------->| | | 2451 | |Notify digits | | 2452 | |<----------| --------------------------->| 2453 | |Notify Response IAM | 2454 | |<----------| | | 2455 | | Add TermA SD:ringbacktone | 2456 | | Add $, Local SDP Info -underspecified | 2457 |<-----------| | | | 2458 |RingBack Tone |<----------------------------| 2459 | |---------->| ACM | 2460 | |Add Resp TermA | | 2461 | |Add Resp Local SDP (Specified) | 2462 | | |---------->| | 2463 | | |Add Phy | | 2464 | | |Add $ Local(Underspecified) | 2465 | | | Remote SDP (Specified) | 2466 | | |<----------------------------| 2467 | | | ANM | 2468 | | |<----------| | 2469 | | |Add Resp Phy | 2470 | | |Add Resp EphB Local Specified| 2471 | |<----------| | | 2472 | |Modify TermA SendRecv | | 2473 | |Modify EphA Remote(Specified) SendRecv | 2474 | |---------->| | | 2475 | |Modify Resp| | | 2476 |/----------------------------------\| | 2477 | RTP MEDIA | | 2478 |\----------------------------------/| | 2479 |----------->| | | | 2480 |UserA goes OnHook | | | 2481 | |---------->| | | 2482 | |Notify OnHook | | 2483 | |<----------| | | 2484 | |Notify Resp| | | 2485 | |<----------| | | 2486 | |Subtract TermA | | 2487 | |Subtract EphA | | 2488 | | |---------------------------->| 2489 | | | REL | 2490 | |---------->| | | 2491 | |Subtract Resp TermA | | 2492 | |Subtract Resp EphA Statistics | 2493 | | |---------->| | 2494 | | |Subtract Phy | 2495 | | |Subtract EphB | 2496 | | |<----------------------------| 2497 | | | RLC | 2498 | | |<----------| | 2499 | | |Subtract Resp Phy | 2500 | | |Subtract Resp EphB Statis | 2501 |____________|___________|___________|_________________| 2503 The MGC generates modify command for to the residential gateway to 2504 check for offhook for Termination TermA. In this message the event 2505 offhook has an embedded signal descriptor and embedded event descriptor. 2506 The embedded signal descriptor is sent for application of dial tone 2507 immediately after the detection of the offhook event and the event 2508 descriptor then will be updated with the onhook and the digit map 2509 completion event. The Digit map is also defined in the digit map 2510 descriptor. 2512 Step 1 2513 MGC to RGW: 2514 MEGACO/1 [216.33.33.61]:27000 2515 Transaction = 1234 { 2516 Context = - { 2517 Modify = TermA { 2518 Media { 2519 LocalControl { 2520 Mode = ReceiveOnly} 2521 }, 2522 DigitMap= Dmap1{(2XXX)} 2523 Events = 1111 {al/of Embed { signals {cg/dt}, Events=1112 { al/on}, 2524 {dd/ce {Dmap1}}} 2525 } 2526 } 2527 } 2529 The MG after receiving the MGC's message responds to it. 2531 Step 2 2532 RGW to MGC: 2533 MEGACO/1 [209.110.59.34]: 25000 2534 Reply = 1234 { 2535 Context = - {Modify = TermA} 2536 } 2538 When the user A goes offhook RGW detects the offhook event and as it 2539 is listed in the event descriptor reports the event detection using 2540 Notify command. 2542 Step 3 2543 RGW to MGC: 2544 MEGACO/1 [209.110.59.34]:25000 2545 Transaction = 2000 { 2546 Context = - { 2547 Notify = TermA {Observed Events =1111 { 2548 20010202T10000000:al/of}} 2549 } 2550 } 2551 the MGC responds with the Notify response. 2553 Step 4 2554 MGC to RGW: 2555 MEGACO/1 [216.33.33.61]: 27000 2556 Reply = 2000 { 2557 Context = - {Notify = TermA} 2558 } 2560 The digit map is active on the termination TermA. When the user dials 2561 the digits the they are reported to MGC through Notify command. 2563 Step 5 2564 RGW to MGC: 2565 MEGACO/1 [209.110.59.34]: 25000 2566 Transaction = 2001 { 2567 Context = - { 2568 Notify = TermA {ObservedEvents =1112 { 2569 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 2570 } 2571 } 2573 MGC after receiving the Notify command responds back with the 2574 Notify response. 2576 Step 6 2577 MGC to RGW: 2578 MEGACO/1 [216.33.33.61]: 27000 2579 Reply = 2001 { 2580 Context = - {Notify = TermA} 2581 } 2583 The MGC generates the Add command for adding the physical termination 2584 TermA and to create an ephemeral termination EphA. The local SDP 2585 information for the ephemeral termination EphA is under specified to 2586 enable the RGW to allocate the necessary values by itself. The mode of 2587 the two terminations is set to receive only. 2589 Step 7 2590 MGC to RGW: 2591 MEGACO/1 [216.33.33.61]: 27000 2592 Transaction = 1235 { 2593 Context = $ { 2594 Add = TermA { 2595 Signals {cg/rt} 2596 Media { 2597 { 2598 LocalControl { 2599 Mode = ReceiveOnly, 2600 }, 2601 } 2602 Add = $ { 2603 Media { 2604 { 2605 LocalControl { 2606 Mode = ReceiveOnly, 2607 }, 2608 Local { 2609 v=0 2610 c=IN IP4 $ 2611 m=audio $ RTP/AVP 4 2612 } 2613 } 2614 } 2615 } 2616 } 2618 MG after creating the context adds the physical termination TermA. In 2619 this case MG creates a context with ContextId 1. The ephemeral 2620 termination EphA is created and added to the context 1. The MG reserves 2621 resources for the local SDP information. In this case the IP address 2622 allocated is 209.110.59.33 and the port number used is 30000. The MG 2623 responds to the Add command with this information in the response to 2624 MGC. 2626 Step 8 2627 RGW to MGC: 2628 MEGACO/1 [209.110.59.34]: 25000 2629 Reply = 1235 { 2630 Context = 1 { 2631 Add = TermA, 2632 Add=EphA{ 2633 Media { 2634 Local { 2635 v=0 2636 c=IN IP4 209.110.59.33 2637 m=audio 30000 RTP/AVP 4 2638 a=recvonly 2639 } ; RTP profile for G.723 is 4 2640 } 2641 } 2642 } 2643 } 2644 } 2646 In this example as mentioned earlier the CCS SS7 signaling is assumed 2647 towards the other side of the Trunking gateway. The IAM message is 2648 generated towards the SS7 switch, with the necessary information about 2649 the called party and calling party. The SS7 switch responds with ACM 2650 indicating that address complete message towards the Trunking gateway. 2651 When the ANM "answer" message is received the MGC Adds a physical 2652 termination. The wildcard $ is used here to enable the Trunking gateway 2653 to choose one of its trunks on the other side of the Trunking gateway. 2654 The ephemeral termination is requested to create with the under 2655 specified SDP local information and the remote SDP information. 2657 Step 9 2658 MGC to TGW 2659 MEGACO/1 [216.33.33.61]: 27000 2660 Transaction = 1236 { 2661 Context = $ { 2662 Add = Trunk1/$ {Media { 2663 LocalControl {Mode = SendRecv}}, 2664 }, 2665 Add = $ {Media { 2666 LocalControl { 2667 Mode = Receiveonly, 2668 }, 2669 Local { 2670 v=0 2671 c=IN IP4 $ 2672 m=audio $ RTP/AVP 4 2674 }, 2675 Remote { 2676 v=0 2677 c=IN IP4 209.110.59.33 2678 m=audio 30000 RTP/AVP 4 2679 } ; RTP profile for G.723 is 4 2680 } 2681 } 2682 } 2683 } 2684 } 2686 The Trunking gateway then processes the command and does the necessary 2687 signaling towards the other side of the Trunking gateway. The seized 2688 trunk identifier is returned in the Add response for physical 2689 termination. In the response for the ephemeral termination, the TGW 2690 returns the local information of the ephemeral termination created. In 2691 this example the TGW creates a context with ContextID 2. 2693 Step 10 2694 TGW to MGC: 2695 MEGACO/1 [207.176.47.89]: 26000 2696 Reply = 1236 { 2697 Context = 2 { 2698 Add = Trunk1/line1, 2699 Add = EphB{ 2700 Media { 2701 Local { 2702 v=0 2703 c=IN IP4 207.176.47.90 2704 m=audio 40000 RTP/AVP 4 2705 } 2706 } ; RTP profile for G723 is 4 2707 } 2708 } 2709 } 2711 As mention earlier MGC after receiving the ANM message to indicate the 2712 status of the end user it forwards the remote SDP information for the 2713 RGW and changes the mode for the termination both at RGW and TGW to 2714 SendRecv. 2716 Step 11 2717 MGC to RGW: 2718 MEGACO/1 [216.33.33.61]: 27000 2719 Transaction = 1237 { 2720 Context = 1 { 2721 Modify = TermA { 2722 Media { 2723 LocalControl { 2724 Mode = sendrecv} 2725 } 2726 } 2727 Signals { } 2728 }, 2729 Modify = EphA { 2730 Media { 2731 LocalControl { 2732 Mode = sendrecv} 2733 Remote { 2734 v=0 2735 c=IN IP4 207.176.47.90 2736 m=audio 40000 RTP/AVP 4 2737 } 2738 } ; RTP profile for G723 is 4 2739 } 2740 } 2741 } 2742 } 2744 The RGW after receiving the Modify command from MGC responds back with 2745 the response. 2746 Step 12 2747 RGW to MGC: 2748 MEGACO/1 [209.110.59.34]: 25000 2749 Reply = 1237 { 2750 Context = 1 {Modify = TermA, Modify = EphA} 2751 } 2753 The MGC also generates commands to the TGW to change the mode of the 2754 Ephemeral termination to send receive. Thus enabling the virtual voice 2755 path between the two ephemeral terminations. 2757 Step 13 2758 MGC to TGW: 2759 MEGACO/1 [216.33.33.61]: 27000 2760 Transaction = 1238 { 2761 Context = 2 { 2762 Modify = Trunk1/line1 { 2763 Media { 2764 LocalControl { 2765 Mode = sendrecv} 2766 } 2767 } 2768 }, 2769 Modify = EphB { 2770 Media { 2771 LocalControl { 2772 Mode = sendrecv} 2773 } 2774 } 2775 } 2776 } 2777 The TGW after receiving the mode change information in Modify command 2778 responds to it. 2780 Step 14 2781 TGW to MGC: 2782 MEGACO/1 [207.176.47.89]: 26000 2783 Reply = 1238 { 2784 Context = 2 {Modify = Trunk1/line1, Modify = EphB} 2785 } 2786 Now RTP media flow takes place. In the example the UserA goes onhook 2787 to terminate the call. The RGW after detecting the event reports the 2788 same to MGC in the Notify command. 2790 Step 15: 2791 RGW to MGC: 2792 MEGACO/1 [209.110.59.34]: 25000 2793 Transaction = 2002 { 2794 Context = 1 { 2795 Notify = TermA {ObservedEvents =1112 { 2796 20010202T10030000:al/on} 2797 } 2798 } 2799 } 2800 The MGC responds to the RGWs Notify message. 2802 Step 16 2803 MGC to RGW: 2804 MEGACO/1 [216.33.33.61]: 27000 2805 Reply = 2002 { 2806 Context = 1 { 2807 Notify = TermA 2809 } 2810 } 2811 The MGC now generates subtract commands both to the RGW and the TGW. 2812 The mechanism of generating call progress tone towards the called user 2813 is not shown for simplicity. The two Subtract commands are clubbed in 2814 a single action. 2816 Step 17 2817 MGC to RGW 2818 MEGACO/1 [216.33.33.61]: 27000 2819 Transaction = 1239 { 2820 Context = 1 { 2821 Subtract = TermA {Audit {}}, 2822 Subtract = EphA {Audit {Statistics}} 2823 } 2824 } 2825 The MG subtracts the two terminations from the context. The context 2826 itself is deleted with the subtract of the last termination from it. 2827 The MG1 responds to this transaction from MGC with statistics on 2828 ephemeral termination. 2830 Step 18 2831 RGW to MGC: 2832 MEGACO/1 [209.110.59.34]:25000 2833 Reply = 1239 { 2834 Context = 1 { 2835 Subtract = TermA 2836 Subtract = EphA { 2837 Statistics { 2838 rtp/ps=1234, ; packets sent 2839 nt/os=56789, ; octets sent 2840 rtp/pr=987, ; packets received 2841 nt/or=65432, ; octets received 2842 rtp/pl=10, ; % packets lost 2843 rtp/jit=30, 2844 rtp/delay=30 ; average latency 2845 } 2846 } 2847 } 2848 } 2850 The MGC generates a REL "release" message towards the SS7 switch. 2851 After receiving the RLC "release complete" message command is 2852 generated towards the TGW to subtract the two terminations from context. 2854 Step 19 2855 MGC to TGW: 2856 MEGACO/1 [216.33.33.61]: 27000 2857 Transaction = 1240 { 2858 Context = 2 { 2859 Subtract = Trunk1/line1{Audit{ }}, 2860 Subtract = EphB {Audit{Statistics}} 2861 } 2862 } 2863 The TGW responds to the subtract commands generated by MGC. 2865 Step 26 2866 TGW to MGC: 2867 MEGACO/1 [209.110.59.34]:25000 2868 Reply = 1240 { 2869 Context = 2 { 2870 Subtract = Trunk1/line1 2871 Subtract = EphB { 2872 Statistics { 2873 rtp/ps=987, ; packets sent 2874 nt/os=65432, ; octets sent 2875 rtp/pr=1234, ; packets received 2876 nt/or=56789, ; octets received 2877 rtp/pl=10, ; % packets lost 2878 rtp/jit=30, 2879 rtp/delay=30 ; average latency 2880 } 2881 } 2882 } 2883 } 2885 2.6 Call between SS7 trunk in TGW and residential gateway 2887 In the earlier call scenario 2.5, we illustrated the call flow between 2888 MGC and MG considering the CCS SS7 signaling towards one side of the 2889 Trunking gateway. The residential Gateway user in that scenario 2890 initiated the call. In this scenario we illustrate similar situation 2891 with call initiated by a user connected to the PSTN network that 2892 originates SS7 signaling. The packages that are supported include 2893 Call progress tone generation package, analog line supervision 2894 package, generic package, RTP package and Network package for the RGW 2895 and Network and RTP package for the TGW. 2897 ______________________________________________________________________ 2898 | | | | 2899 SS7 Switch | TGW | MGC | RGW1 | USERB 2900 ____________|________ ___|___________|______________|_________________ 2901 | | | | | 2902 | | | | | 2903 |----------------------->| | | 2904 | IAM | | | 2905 |<-----------------------| | | 2906 | ACM | | | 2907 | | | | | 2908 | |<----------| | | 2909 | | Add Phy | | | 2910 | | Add $, Local SDP Info -underspecified | 2911 | |---------->| | | 2912 | |Add Resp Phy | | 2913 | |Add Resp Local SDP (Specified) | 2914 | | |---------->| | 2915 | | |Add TermB SD:Ring ED:offhook | 2916 | | |Add $ Local(Underspecified) | 2917 | | | Remote SDP (Specified) | 2918 | | | | | 2919 | | | |------------------>| 2920 | | | | UserB Phone Ringing 2921 | | |<----------| | 2922 | | |Add Resp TermB | 2923 | | |Add Resp EphB Local Specified | 2924 | | | |<------------------| 2925 | | | |UserB goes Offhook | 2926 |<-----------------------| | | 2927 | ANM | | | 2928 | | |<----------| | 2929 | | |Notify Offhook | 2930 | | |---------->| | 2931 | | | Notify Resp | 2932 | |<----------| | | 2933 | |Modify Phy SendRecv | | 2934 | |Modify EphA Remote(Specified) SendRecv | 2935 | |---------->| | | 2936 | |Modify Resp| | | 2937 | | |---------->| | 2938 | | |Modify Phy SendRecv | 2939 | | |Modify EphB SendRecv | 2940 | | |<----------| | 2941 | | |Modify Resp| | 2942 | |/-----------------------------------------\| 2943 | | RTP MEDIA | 2944 | |\-----------------------------------------/| 2945 |----------------------->| | | 2946 | REL | | | 2947 | | |---------->| | 2948 | | |Modify TermB SD:BusyTone | 2949 | | | |------------------>| 2950 | | | | Busy tone to UserB| 2951 | | |<----------| | 2952 | | |Modify Resp| | 2953 | |<----------| | | 2954 | |Subtract Phy | | 2955 | |Subtract EphA | | 2956 | |---------->| | | 2957 | |Subtract Resp Phy | | 2958 | |Subtract Resp EphA Statistics | 2959 | | | |<------------------| 2960 | | | | UserB goes Onhook | 2961 |<-----------------------| | | 2962 | RLC | | | 2963 | | |<----------| | 2964 | | |Notify Onhook | 2965 | | |---------->| | 2966 | | |Notify Resp| | 2967 | | |---------->| | 2968 | | |Subtract TermB | 2969 | | |Subtract EphB | 2970 | | |<----------| | 2971 | | |Subtract Resp TermB | 2972 | | |Subtract Resp EphB Statistics | 2973 |____________|___________|___________|___________________| 2975 We assume that the TGW and SG are in a single box, such that both 2976 signaling and Media adaptation is done by the same entity The Media 2977 Gateway controller is intimated about the call initiation from the 2978 other side of the Trunking gateway, when the SS7 message IAM is 2979 received. The MGC after receiving the IAM messages responds with the 2980 ACM message indicating that the called party address is sufficient to 2981 identify the end user. The ACM message is sent to the SS7 switch 2982 through the signaling gateway. The circuit to be used for media 2983 information is indicated by the SS7 message received by the MGC. 2985 The MGC generates the Modify command to the Residential gateway for 2986 application of "ring" signal to the user. The event descriptor in the 2987 Modify command lists the offhook event. 2989 Step 1 2990 MGC to RGW: 2991 MEGACO/1 [216.33.33.61]: 27000 2992 Transaction = 1234 { 2993 Context = - { 2994 Modify = TermA { 2995 Media { 2996 LocalControl { 2997 Mode = ReceiveOnly} 2998 }, 2999 Events = 1111 {al/of} 3000 Signals = {al/ri} ; For application of ring signal 3001 } 3002 } 3003 } 3004 The Residential gateway after receiving the Modify command responds 3005 with the Modify response. 3007 Step 2 3008 RGW to MGC: 3010 MEGACO/1 [209.110.59.34]: 25000 3011 Reply = 1234 { 3012 Context = - {Modify = TermA} 3013 } 3015 The users after receiving the "ring" signal assume to go offhook. The 3016 same event is reported to the MGC in the notify command. 3018 Step 3 3019 RGW to MGC: 3020 MEGACO/1 [209.110.59.34]:25000 3021 Transaction = 2000 { 3022 Context = - { 3023 Notify = TermA {Observed Events =1111 { 3024 20010202T10000000:al/of}} 3025 } 3026 } 3028 the MGC responds the Notify command with the Notify response. 3030 Step 4 3031 MGC to RGW: 3032 MEGACO/1 [216.33.33.61]: 27000 3033 Reply = 2000 { 3034 Context = - {Notify = TermA} 3035 } 3037 The MGC after receiving the offhook event responds with the SS7 message 3038 to be generated towards the SS7 switch. The ANM message generated from 3039 MGC indicates the answering state of the user. The MGC meanwhile 3040 generate ADD commands to both the Trunking gateway and Residential 3041 gateway. The message towards the Trunking gateway includes the 3042 addition of physical circuit that was seized for media transfer. The 3043 request for creating ephemeral termination is also sent in the same 3044 request. The Local SDP information is under specified allowing the 3045 Trunking gateway to choose the necessary SDP parameters. 3047 Step 5 3048 MGC to TGW 3049 MEGACO/1 [216.33.33.61]: 27000 3050 Transaction = 1235 { 3051 Context = $ { 3052 Add = Trunk1/line1 {Media { 3053 LocalControl {Mode = SendRecv}}, 3054 }, 3055 Add = $ {Media { 3056 LocalControl { 3057 Mode = Receiveonly, 3058 }, 3059 Local { 3060 v=0 3061 c=IN IP4 $ 3062 m=audio $ RTP/AVP 4 3064 } 3065 } 3066 } 3067 } 3068 } 3069 } 3071 The Trunking gateway after responds with a contextID in this example 1. 3072 The ephemeral termination is created and added to the same context as 3073 the physical termination. The ephemeral termination added in this 3074 example is EPHA. The local parameters are specified in the response. 3075 The IP address chosen for the media transport in this example is 3076 209.110.59.33, and the port number specified 30000. 3078 Step 6 3079 TGW to MGC: 3080 MEGACO/1 [207.176.47.89]: 26000 3081 Reply = 1235 { 3082 Context = 1 { 3083 Add = Trunk1/line1, 3084 Add = EphB { 3085 Media { 3086 Local { 3087 v=0 3088 c=IN IP4 209.110.59.33 3089 m=audio 30000 RTP/AVP 4 3090 } 3091 } ; RTP profile for G723 is 4 3092 } 3093 } 3094 } 3096 The MGC after receiving the response from the Trunking gateway uses 3097 the SDP information in the response sent from TG to the Residential 3098 gateway. The commands for adding the physical termination TermA and 3099 ephemeral termination to be created are sent in the same transaction. 3100 The MGC requests creation of context and to add the two terminations 3101 in the same. 3103 Step 7 3104 MGC to RGW 3105 MEGACO/1 [216.33.33.61]: 27000 3106 Transaction = 1237 { 3107 Context = $ { 3108 Add = TermA {Media { 3109 LocalControl {Mode = SendRecv}}, 3110 }, 3111 Add = $ {Media { 3112 LocalControl { 3113 Mode = Receiveonly, 3114 }, 3115 Local { 3116 v=0 3117 c=IN IP4 $ 3118 m=audio $ RTP/AVP 4 3120 } 3121 Remote{ 3122 v=0 3123 c=IN IP4 209.110.59.33 3124 m=audio 30000 RTP/AVP 4 3125 } 3126 } ; RTP profile for G723 is 4 3127 } 3128 } 3129 } 3131 The Residential gateway creates a context with ContextId 2. It adds the 3132 physical termination TermA in that context. The ephemeral termination 3133 EPHB is created with the specified SDP information. The response from 3134 the MG specifies the local SDP information. 3136 Step 8 3137 RGW to MGC: 3138 MEGACO/1 [209.110.59.34]: 25000 3139 Reply = 1237 { 3140 Context = 2 { 3141 Add = TermA, 3142 Add = EphA{ 3143 Media { 3144 Local { 3145 v=0 3146 c=IN IP4 209.110.59.34 3147 m=audio 30000 RTP/AVP 4 3148 } 3149 } ; RTP profile for G723 is 4 3150 } 3151 } 3152 } 3153 The MGC after receiving the response with the local SDP information 3154 conveys the same to the Trunking gateway as remote SDP information 3155 in the Modify command. 3157 Step 9 3158 MGC to TGW 3159 MEGACO/1 [216.33.33.61]: 27000 3160 Transaction = 1238 { 3161 Context = 1 { 3162 Modify = EphA 3163 {Media { 3164 LocalControl { 3165 Mode = SendRecv, 3166 }, 3167 Remote{ 3168 v=0 3169 c=IN IP4 209.110.59.34 3170 m=audio 30000 RTP/AVP 4 3171 } 3172 } 3173 } 3174 } 3175 } 3176 } 3178 The Trunking gateway responds to the Modify command. 3180 Step 10 3181 TGW to MGC: 3182 MEGACO/1 [207.176.47.89]: 26000 3183 Reply = 1238 { 3184 Context = 1 { 3185 Modify = EphA 3186 } 3187 } 3188 The media properties are exchanged between the two media gateways and 3189 the RTP media can be transferred between these two. The call be will 3190 be disconnected with one of the two users going onhook. In this example 3191 we consider the user connected to the SS7 domain initiates the 3192 termination of the Call. The SS7 switch generates the REL "release" 3193 message towards the MGC. The MGC after receiving the REL message 3194 initiates the call teardown. The MGC generates a busy tones towards the 3195 user connected to the Residential gateway to indicate the disconnection 3196 of the call. The modify command is sent with event descriptor that 3197 lists the onhook event. 3199 Step 11 3200 MGC to RGW 3201 MEGACO/1 [216.33.33.61]: 27000 3202 Transaction = 1239 { 3203 Context = 2 { 3204 Modify = TermA { 3205 Signals { cg/bt }, 3206 Events = 1236 { al/on }, 3207 Media { LocalControl { recvonly } } 3208 } 3209 } 3210 } 3212 The Residential gateway responds with the Modify command response. 3214 Step 12 3215 RGW to MGC: 3216 MEGACO/1 [209.110.59.34]: 25000 3217 Reply = 1239 { 3218 Context = 2 { 3219 Modify = TermA, 3220 } 3221 } 3222 The media connection tears down will be complete by responding the REL 3223 message by the RLC. The MGC subtracts the terminations added in the two 3224 Media gateways for this call. The Subtract command is sent to the 3225 Trunking gateway. The audit descriptor lists the statistics to enable 3226 statistics reporting to MGC from the Trunking gateway. 3228 Step 13 3229 MGC to TGW: 3230 MEGACO/1 [216.33.33.61]: 27000 3231 Transaction = 1240 { 3232 Context = 1 { 3233 Subtract = Trunk1/line1{Audit{ }}, 3234 Subtract = EphB {Audit{Statistics}} 3235 } 3236 } 3237 The TGW responds to the subtract commands generated by MGC. 3239 Step 14 3240 TGW to MGC: 3241 MEGACO/1 [209.110.59.34]:25000 3242 Reply = 1240 { 3243 Context = 1 { 3244 Subtract = Trunk1/line1 3245 Subtract = EphB { 3246 Statistics { 3247 rtp/ps=987, ; packets sent 3248 nt/os=65432, ; octets sent 3249 rtp/pr=1234, ; packets received 3250 nt/or=56789, ; octets received 3251 rtp/pl=10, ; % packets lost 3252 rtp/jit=30, 3253 rtp/delay=30 ; average latency 3254 } 3255 } 3256 } 3257 } 3259 Step 15 3260 RGW to MGC: 3261 MEGACO/1 [209.110.59.34]:25000 3262 Transaction = 2001 { 3263 Context = 2 { 3264 Notify = TermA {Observed Events =1236 { 3265 20010202T20000000:al/on}} 3266 } 3267 } 3269 The MGC responds the Notify command with the Notify response. 3271 Step 16 3272 MGC to RGW: 3273 MEGACO/1 [216.33.33.61]: 27000 3274 Reply = 2001 { 3275 Context = 2 {Notify = TermA} 3276 } 3278 The MGC after receiving the Notify for onhook from UserA generates 3279 transaction with two Subtract command for subtracting both the physical 3280 and ephemeral terminations from the Residential gateway. 3282 Step 15 3283 MGC to RGW: 3284 MEGACO/1 [216.33.33.61]: 27000 3285 Transaction = 1241 { 3286 Context = 2 { 3287 Subtract = TermA{Audit{ }}, 3288 Subtract = EphA {Audit{Statistics}} 3289 } 3290 } 3291 The RGW responds to the subtract commands generated by MGC. 3293 Step 16 3294 TGW to MGC: 3295 MEGACO/1 [209.110.59.34]: 26000 3296 Reply = 1241 { 3297 Context = 2 { 3298 Subtract = TermA 3299 Subtract = EphA { 3300 Statistics { 3301 rtp/ps=987, ; packets sent 3302 nt/os=65432, ; octets sent 3303 rtp/pr=1234, ; packets received 3304 nt/or=56789, ; octets received 3305 rtp/pl=10, ; % packets lost 3306 rtp/jit=30, 3307 rtp/delay=30 ; average latency 3308 } 3309 } 3310 } 3311 } 3313 2.7 Call between SS7 trunk in TGW and R2 trunk in TGW 3314 This section of the call flow illustrates the call between two Trunking 3315 gateways, one that does R2 signaling towards the PSTN and the second 3316 TGW CCS SS7 towards the PSTN. In this example the user in the CCS SS7 3317 signaling network originates the call. The destination user is connected 3318 to the PSTN network with R2 signaling. The R2 package draft is taken 3319 as the input for illustrating the events and signals used for 3320 communication between MG and MGC. The assumption of the R2 package, 3321 that the compelled signaling is part of the MG to generate signals or 3322 detect events holds true for this call scenario also. 3324 ______________________________________________________________________ 3325 | | | | 3326 SS7 Switch | TGW1 | MGC | TGW2 | R2Exch 3327 ____________|____________|___________|______________|_________________ 3328 | | | | | 3329 |----------->| | | | 3330 | IAM | | | | 3331 | |---------->| | | 3332 | | IAM | | | 3333 | | |----------->| | 3334 | | |Modify Phy Seize | 3335 | | | |--------------->| 3336 | | | | Seize | 3337 | | |<-----------| | 3338 | | |Modify Resp | | 3339 | | | |<---------------| 3340 | | | | Seize Ack | 3341 | | |<-----------| | 3342 | | |Notify OE:sa|--------------->| 3343 | | |----------->| Digits | 3344 | | |Notify Resp | | 3345 | |<----------| | | 3346 | | ACM | | | 3347 |<-----------| | | | 3348 | ACM | | | | 3349 | | | |<---------------| 3350 | | | | Answer | 3351 | | |<-----------| | 3352 | | | Notify OE:ans | 3353 | | |----------->| | 3354 | | |Notify Resp | | 3355 | |<----------| | | 3356 | | ANM | | | 3357 |<-----------| | | | 3358 | ANM | | | | 3359 | |<----------| | | 3360 | |Add Phy | | | 3361 | |Add $ Local (Unspecified) | 3362 | |---------->| | | 3363 | |Add Phy Resp | | 3364 | |Add Eph Resp | | 3365 | | |----------->| | 3366 | | |Add Phy | | 3367 | | |Add $ Local (Unspecified) | 3368 | | | Remote (Specified) | 3369 | | |<-----------| | 3370 | | |Add Phy Resp| | 3371 | | |Add Eph Resp| | 3372 | |<----------| | | 3373 | |Modify Eph | | | 3374 | |---------->| | | 3375 | |Modify Resp| | | 3376 | |/----------------------\| | 3377 | | RTP MEDIA | | 3378 | |\----------------------/| | 3379 |----------->| | | | 3380 | REL | | | | 3381 | |---------->| | | 3382 | | REL | | | 3383 | | |----------->| | 3384 | | |Modify Phy ED:R2/clear | 3385 | | | |--------------->| 3386 | | | | Clear Forward | 3387 | | |<-----------| | 3388 | | |Modify Resp | | 3389 | | | |<---------------| 3390 | | | | Clear Back | 3391 | | |<-----------| | 3392 | | | Notify OE:clear | 3393 | | |----------->| | 3394 | | | Notify Resp| | 3395 | |<----------| | | 3396 | | RLC | | | 3397 |<-----------| | | | 3398 | RLC | | | | 3399 | |<----------| | | 3400 | |Sub Phy | | | 3401 | |Sub Eph | | | 3402 | |---------->| | | 3403 | |Sub Phy Resp | | 3404 | |Sub Eph Resp Statistics | | 3405 | | |----------->| | 3406 | | |Sub Phy | | 3407 | | |Sub Eph | | 3408 | | |<-----------| | 3409 | | |Sub Phy Resp| | 3410 | | |Sub Eph Resp Statistics | 3411 |____________|___________|____________|________________| 3413 When the MGC through the signaling gateway receives the IAM it generates 3414 a Modify message towards the Trunking gateway that supports R2 package. 3415 The signal descriptor has the seize signal and the events descriptor 3416 has the event seizeack. The seizeack event has an embedded signal 3417 "address". The Trunking gateway is intended to seize a circuit and 3418 apply the address signals after the seize acknowledgement is received 3419 from the other R2 exchange. The calling party information can also be 3420 provided in the address signal. The embedded event of the seize 3421 acknowledgement event is the answer. This event has to be reported 3422 when the digits reach the other R2 exchange and there is answer from 3423 the terminating R2 exchange. The message from MGC to R2TGW is as 3424 follows. 3426 Step 1 3427 MGC to R2TGW 3428 MEGACO/1 [216.33.33.61]: 27000 3429 Transaction = 1234 { 3430 Context = - { 3431 Modify = Trunk1/line1 { 3432 Signals = {R2/sz} 3433 Events = 1111 {R2/sa Embed {signals {R2/address {si = 2992, di = 2989}}, 3434 Events=1112 {R2/clear, R2/answer} 3435 } 3436 } 3437 } 3438 The R2TGW after receiving the Modify command does the command 3439 processing and responds with Modify command response. 3441 Step 2 3442 R2TGW to MGC 3443 MEGACO/1 [209.110.59.34]: 25000 3444 Reply = 1234 { 3445 Context = - { 3446 Modify = Trunk1/line1 3447 } 3448 } 3450 The R2 TGW applies seize signal on the specified circuit group and after 3451 receiving the acknowledgement from the other R2 exchange updates the 3452 embedded events descriptor as the events descriptor. The R2TGW also 3453 generates a Notify command towards the MGC to indicate that the seize 3454 acknowledgement has been received. 3456 Step 3 3457 R2GW to MGC: 3459 MEGACO/1 [209.110.59.34]: 25000 3460 Transaction = 2000 { 3461 Context = - { 3462 Notify = Trunk1/line1 {Observed Events =1111 { 3463 20010202T10000000:R2/sa}} 3464 } 3465 } 3467 the MGC responds the Notify command with the Notify response. 3469 Step 4 3470 MGC to R2GW: 3471 MEGACO/1 [216.33.33.61]: 27000 3472 Reply = 2000 { 3473 Context = - {Notify = Trunk1/line1} 3474 } 3476 The MGC now generates the address complete message to the SS7 switch 3477 that has generated the IAM message. The R2TGW after receiving the 3478 answer event from the other R2 exchange generates message to notify 3479 this event. 3481 Step 5 3482 R2GW to MGC: 3483 MEGACO/1 [209.110.59.34]: 25000 3484 Transaction = 2001 { 3485 Context = - { 3486 Notify = Trunk1/line1 {Observed Events =1112 { 3487 20010202T10000000:R2/ans}} 3488 } 3489 } 3491 The MGC responds the Notify command with the Notify response. 3493 Step 6 3494 MGC to R2GW: 3495 MEGACO/1 [216.33.33.61]: 27000 3496 Reply = 2001 { 3497 Context = - {Notify = Trunk1/line1} 3498 } 3500 MGC generates the ANM message towards the SS7 switch through the 3501 signaling gateway. It also generates commands to add terminations into 3502 specific contexts. It generates a single transaction with two Add 3503 commands towards the TGW that supports R2 terminations. One command 3504 is to add the physical circuit group Trunk1/line and the other for the 3505 ephemeral termination. The SDP information is unspecified that enables 3506 the TGW to choose the under specified parameters. 3508 Step 7 3509 MGC to R2TGW 3510 MEGACO/1 [216.33.33.61]: 27000 3511 Transaction = 1235{ 3512 Context = $ { 3513 Add = Trunk1/line1 {Media { 3514 LocalControl {Mode = SendRecv}}, 3515 }, 3516 Add = $ {Media { 3517 LocalControl { 3518 Mode = Receiveonly, 3519 }, 3520 Local { 3521 v=0 3522 c=IN IP4 $ 3523 m=audio $ RTP/AVP 4 3525 } 3526 } 3527 } 3528 } 3529 } 3530 } 3532 The R2 Trunking gateway after receiving the Add command responds with a 3533 contextID in this example 1. The ephemeral termination is created and 3534 added to the same context as the physical termination. The ephemeral 3535 termination added in this example is EPHA. The local parameters are 3536 specified in the response. The IP address chosen for the media 3537 transport in this example is 209.110.59.33, and the port number 3538 specified 30000. 3540 Step 8 3541 R2TGW to MGC: 3542 MEGACO/1 [209.110.59.34]: 25000 3543 Reply = 1235{ 3544 Context = 1 { 3545 Add = Trunk1/line1, 3546 Add = EphA { 3547 Media { 3548 Local { 3549 v=0 3550 c=IN IP4 209.110.59.33 3551 m=audio 30000 RTP/AVP 4 3552 } 3553 } ; RTP profile for G723 is 4 3554 } 3555 } 3556 } 3557 The MGC after receiving the response generates similar transaction 3558 with two ADD commands to the other TGW. The local SDP information 3559 specified in by the R2TGW is used to as remote SDP information for the 3560 other TGW. The MGC conveys this information in the Add command. 3562 Step 9 3563 MGC to TGW 3564 MEGACO/1 [216.33.33.61]: 27000 3565 Transaction = 1236{ 3566 Context = $ { 3567 Add = Trunk2/$ {Media { 3568 LocalControl {Mode = SendRecv}}, 3569 }, 3570 Add = $ {Media { 3571 LocalControl { 3572 Mode = Receiveonly, 3573 }, 3574 Local { 3575 v=0 3576 c=IN IP4 $ 3577 m=audio $ RTP/AVP 4 3579 } 3580 Remote{ 3581 v=0 3582 c=IN IP4 209.110.59.33 3583 m=audio 30000 RTP/AVP 4 3584 } 3585 } ; RTP profile for G723 is 4 3586 } 3587 } 3588 } 3590 The Trunking gateway creates a context with ContextId 2. It adds the 3591 physical termination Trunk2/line1 in that context. The ephemeral 3592 termination EPHB is created with the specified SDP information. The 3593 response from the MG specifies the local SDP information. 3595 Step 10 3596 RGW to MGC: 3597 MEGACO/1 [207.176.47.89]: 26000 3598 Reply = 1236{ 3599 Context = 2 { 3600 Add = Trunk2/line1, 3601 Add = EphB{ 3602 Media { 3603 Local { 3604 v=0 3605 c=IN IP4 209.110.59.33 3606 m=audio 30000 RTP/AVP 4 3607 } 3608 } ; RTP profile for G723 is 4 3609 } 3610 } 3611 } 3613 The MGC after receiving the response generates a modify command to the 3614 R2TGW to inform the local SDP information of TGW as the remote SDP for 3615 the R2TGW. 3617 Step 11 3618 MGC to TGW 3619 MEGACO/1 [216.33.33.61]: 27000 3620 Transaction = 1237{ 3621 Context = 1 { 3622 Modify = EphA 3623 {Media { 3624 LocalControl { 3625 Mode = SendRecv, 3626 }, 3627 Remote{ 3628 v=0 3629 c=IN IP4 209.110.59.33 3630 m=audio 30000 RTP/AVP 4 3631 } 3632 } 3633 } 3634 } 3635 } 3636 } 3638 The R2 Trunking gateway responds to the Modify command. 3640 Step 12 3641 TGW to MGC: 3642 MEGACO/1 [207.176.47.89]: 26000 3643 Reply = 1237{ 3644 Context = 1 { 3645 Modify = EphA 3646 } 3647 } 3648 The RTP media flow is established and the two users connected to the 3649 SS7 trunk and R2 trunk starts the conversation. After conversation any 3650 of the user can disconnect the call, in this example the user connected 3651 to the SS7 domain releases the call. The SS7 switch generates a REL 3652 message towards the MGC. The Signaling gateway forwards the same 3653 request towards the MGC. The MGC initiates the tearing down of the 3654 call. This is done initially by generating a Modify command towards 3655 the R2 TGW to generate clear forward signal towards the R2 exchange. 3656 In the message the MGC sends a signal descriptor with clear signals 3657 and events descriptor with the clear in the event. The event in the 3658 events descriptor is for detecting the clear back signal generated 3659 from the R2 exchange. 3661 Step 13 3662 MGC to TGW: 3663 MEGACO/1 [216.33.33.61]: 27000 3664 Transaction = 1238{ 3665 Context = 1 { 3666 Context = Trunk1/line1{ 3667 signal { R2/clear}, 3668 Events = 1113{ R2/clear} 3669 } 3670 } 3672 The R2 TGW after receiving the commands does the signals and events 3673 descriptor processing and responds to the MGC with the Modify command 3674 response. 3676 Step 14 3677 R2TGW to MGC 3678 MEGACO/1 [209.110.59.34]: 25000 3679 Reply = 1238 { 3680 Context = 1 { 3681 Modify = Trunk1/line1 3682 } 3683 } 3685 Mean while the MGC generates the subtract message towards the 3686 originating TGW to remove the terminations from the newly created 3687 context. 3689 Step 15 3690 MGC to TGW: 3691 MEGACO/1 [216.33.33.61]: 27000 3692 Transaction = 1239 3693 Context = 2 { 3694 Subtract = Trunk2/line1{Audit{ }}, 3695 Subtract = EphB {Audit{Statistics}} 3696 } 3697 } 3698 The RGW responds to the subtract commands generated by MGC. 3700 Step 16 3701 TGW to MGC: 3702 MEGACO/1 [207.176.47.89]:26000 3703 Reply = 1239 3704 Context = 2 { 3705 Subtract = Trunk2/line1 3706 Subtract = EphB { 3707 Statistics { 3708 rtp/ps=987, ; packets sent 3709 nt/os=65432, ; octets sent 3710 rtp/pr=1234, ; packets received 3711 nt/or=56789, ; octets received 3712 rtp/pl=10, ; % packets lost 3713 rtp/jit=30, 3714 rtp/delay=30 ; average latency 3716 } 3717 } 3718 } 3719 } 3720 The MGC after receiving the response from the TGW generates the 3721 Release complete message RLC towards the SS7 switch through the 3722 Signaling Gateway. 3724 The R2 TGW after receiving the clear back signal from the other R2 3725 exchange detects it and generates a Notify command towards the MGC. 3727 Step 17 3728 R2GW to MGC: 3729 MEGACO/1 [209.110.59.34]:25000 3730 Transaction = 2002 { 3731 Context = - { 3732 Notify = TermA {Observed Events =1113 { 3733 20030202T10000000:R2/clear}} 3734 } 3735 } 3737 the MGC responds the Notify command with the Notify response. 3739 Step 18 3740 MGC to R2GW: 3741 MEGACO/1 [216.33.33.61]: 27000 3742 Reply = 2002 { 3743 Context = - {Notify = TermA} 3744 } 3745 MGC after receiving the notify command generates subtract command to 3746 remove both the physical termination and ephemeral termination. 3748 Step 19 3749 MGC to R2TGW: 3750 MEGACO/1 [216.33.33.61]: 27000 3751 Transaction = 1240{ 3752 Context = 1 { 3753 Subtract = Trunk1/line1{Audit{ }}, 3754 Subtract = EphA {Audit{Statistics}} 3755 } 3756 } 3757 The R2TGW responds to the subtract commands generated by MGC. 3759 Step 20 3760 R2TGW to MGC: 3761 MEGACO/1 [209.110.59.34]:25000 3762 Reply = 1240{ 3763 Context = 1 { 3764 Subtract = Trunk1/line1 3765 Subtract = EphA { 3766 Statistics { 3767 rtp/ps=987, ; packets sent 3768 nt/os=65432, ; octets sent 3769 rtp/pr=1234, ; packets received 3770 nt/or=56789, ; octets received 3771 rtp/pl=10, ; % packets lost 3772 rtp/jit=30, 3773 rtp/delay=30 ; average latency 3774 } 3775 } 3776 } 3777 } 3778 Now the termination is free to take part in other calls. 3780 2.8 Call between R2 trunk in TGW and SS7 trunk in TGW 3782 This section of the call flow illustrates the call between two 3783 Trunking gateways, one that does R2 signaling towards one end and the 3784 second TGW CCS SS7. In this example the user in the R2 signaling 3785 network originates the call. The destination user is connected to 3786 the PSTN network with CCS SS7 signaling. The R2 package draft is 3787 considered for illustrating the events and signals used for 3788 communication between MG and MGC. The assumption of the R2 package, 3789 that the compelled signaling is part of the MG to generate signals 3790 or detect events holds true for this call scenario also. 3792 ______________________________________________________________________ 3793 | | | | 3794 R2Exchange | TGW1 | MGC | TGW2 | SS7 Switch 3795 ____________|____________|___________|______________|_________________ 3796 | | | | | 3797 | |<-----------| | | 3798 | |Modify ED:sz{SD:sa ED:addr, cl} | 3799 | |----------->| | | 3800 | |Modify Resp | | | 3801 |----------->| | | | 3802 | Seize | | | | 3803 |<-----------| | | | 3804 |SeizeAck |----------->| | | 3805 | |Notify OE:sa| | | 3806 |----------->| | | | 3807 | Digit 1 | | | | 3808 |<-----------| | | | 3809 |Send Next Digit | | | 3810 | : | | | | 3811 | : | | | | 3812 |<-----------| | | | 3813 | End of Singaling | | | 3814 | |----------->| | | 3815 | |Notify OE:addr | | 3816 | | |----------->| | 3817 | | | IAM |--------------->| 3818 | |<-----------| | IAM | 3819 | |Notify Resp | |<---------------| 3820 | | |<-----------| ACM | 3821 | | | ACM | | 3822 | |<-----------| | | 3823 | |Modify Phy | | | 3824 |<-----------| | | | 3825 | Answer | | | | 3826 | |----------->| | | 3827 | |Modify Resp | | | 3828 | |<-----------| | | 3829 | | Add Phy | | | 3830 | | Add Eph Local Unspecified | 3831 | |----------->| | | 3832 | |Add Phy Resp| | | 3833 | |Add Eph Resp Local Specified | 3834 | | |----------->| | 3835 | | | Add Phy | | 3836 | | | Add EPh Local Unspecified | 3837 | | | Remote Specified | 3838 | | |<-----------| | 3839 | | |Add Phy Resp| | 3840 | |<-----------| | | 3841 | |Modify Eph | | | 3842 | |----------->| | | 3843 | |Modify Resp | | | 3844 | |/-----------------------\| | 3845 | | RTP MEDIA | | 3846 | |\-----------------------/| | 3847 |----------->| | | | 3848 |Clear Forward | | | 3849 | |----------->| | | 3850 |<-----------|Notify OE:R2/clear | | 3851 |Clear Back | | | | 3852 | |<-----------| | | 3853 | |Notify Resp | | | 3854 | | |----------->| | 3855 | | | REL |--------------->| 3856 | | | | REL | 3857 | | | |<---------------| 3858 | | |<-----------| RLC | 3859 | | | RLC | | 3860 | |<-----------| | | 3861 | |Sub Phy | | | 3862 | |Sub Eph | | | 3863 | |----------->| | | 3864 | |Sub Phy Resp| | | 3865 | |Sub Eph Resp Statistics | | 3866 | | |----------->| | 3867 | | |Sub Phy | | 3868 | | |Sub Eph | | 3869 | | |<-----------| | 3870 | | |Sub Phy Resp| | 3871 | | |Sub Eph Resp Statistics | 3872 |____________|____________|____________|________________| 3874 The MGC generates a Modify command towards the R2 Trunking gateway with 3875 the seize event and an embedded seize acknowledgement signal. The 3876 digit map in this scenario is assumed to be provisioned in the MG 3877 (shown to be 2XXX which may not be true for practical R2 exchanges). 3878 The seize event has a embedded signal seizeack to be applied after 3879 detection of seize event. The embedded signal is accompanied by 3880 another embedded events namely the clear event to detect the clear 3881 forwards signal if generated from the R2 domain. 3883 Step 1 3884 MGC to R2TGW 3885 MEGACO/1 [216.33.33.61]: 27000 3886 Transaction = 1234 { 3887 Context = - { 3888 Modify = Trunk1/line1 { 3889 Events = 1111 {R2/sz Embed { signals {R2/sa}, Events=1112 3890 { R2/clear signals { R2/clear }, R2/address}} 3891 } 3892 } 3893 } 3894 The R2TGW after receiving the Modify command does the command processing 3895 and responds with Modify command response. 3897 Step 2 3898 R2TGW to MGC 3899 MEGACO/1 [209.110.59.34]: 25000 3900 Reply = 1234 { 3901 Context = - { 3902 Modify = Trunk1/line1 3903 } 3904 } 3906 In this example as mentioned earlier, the call is originated from a user 3907 connected to the R2 domain of PSTN. The R2 exchange that is connected to 3908 the R2 Trunking gateway generates the seize signal. The seize signal is 3909 identified by the R2TGW and seize event is detected. The seize event is 3910 notified to the MGC. The R2TGW meanwhile does the embedded descriptor 3911 processing for the seize event. The application of the seizeack and 3912 detection of clear event is activated on the specific circuit group. 3914 The Notify command is generated towards the MGC. 3916 Step 3 3917 R2GW to MGC: 3918 MEGACO/1 [209.110.59.34]:25000 3919 Transaction = 2000 { 3920 Context = - { 3921 Notify = TermA {Observed Events =1111 { 3922 20010202T10000000:R2/sz}} 3923 } 3924 } 3926 the MGC responds the Notify command with the Notify response. 3928 Step 4 3929 MGC to R2GW: 3930 MEGACO/1 [216.33.33.61]: 27000 3931 Reply = 2000 { 3932 Context = - {Notify = TermA} 3933 } 3934 The R2TGW collects the digits and reports the same to the MGC as 3935 parameters of the address event. The other observed event parameters 3936 like the source number, subscribe category, etc are also indicated to 3937 the MGC. 3939 Step 5 3940 R2GW to MGC: 3941 MEGACO/1 [209.110.59.34]:25000 3942 Transaction = 2001 { 3943 Context = - { 3944 Notify = TermA {Observed Events =1112 { 3945 20010302T10000000:R2/address { di=2992, si=2804 , sc=1 } }} 3946 } 3947 } 3949 the MGC responds the Notify command with the Notify response. 3951 Step 6 3952 MGC to R2GW: 3953 MEGACO/1 [216.33.33.61]: 27000 3954 Reply = 2001 { 3955 Context = - {Notify = TermA} 3956 } 3957 The MGC then initiates the necessary signaling towards the exchange to 3958 which the destination user is connected. In this example the MGC has to 3959 generates SS7 messages to the SS7 switch. The IAM message is sent with 3960 all the necessary address signaling information. The SS7 switch 3961 responds with the ACM message. 3963 The MGC after receiving the ANM message generates command to apply 3964 answer signal. The MGC sends a Modify command towards the R2 TGW to 3965 indicate that the answer needs to be applied 3967 Step 7 3968 MGC to R2TGW 3969 MEGACO/1 [216.33.33.61]: 27000 3970 Transaction = 1235 { 3971 Context = - { 3972 Modify = Trunk1/line1 3973 {signals{ R2/ans } } 3974 } 3975 } 3977 The R2trunking gateway responds to the Modify command. 3979 Step 8 3980 R2TGW to MGC: 3981 MEGACO/1 [207.176.47.89]: 26000 3982 Reply = 1235 { 3983 Context = - { 3984 Modify = Trunk1/line1 3985 } 3986 } 3988 The MGC after receiving the ANM message generates commands to both 3989 the Trunking gateways to add physical circuits and create ephemeral 3990 terminations. The MGC in its message to the R2TGW in its signal 3991 descriptor lists the answer signal to indicate that the call 3992 establishment is successful and the end user is free to receive 3993 the call. 3995 Step 9 3996 MGC to R2TGW 3997 MEGACO/1 [216.33.33.61]: 27000 3998 Transaction = 1236{ 3999 Context = $ { 4000 Add = Trunk1/line1 {Media { 4001 LocalControl {Mode = SendRecv}}, 4002 }, 4003 Add = $ {Media { 4004 LocalControl { 4005 Mode = Receiveonly, 4006 }, 4007 Local { 4008 v=0 4009 c=IN IP4 $ 4010 m=audio $ RTP/AVP 4 4012 } 4013 } 4014 } 4015 } 4017 } 4018 } 4020 The R2 Trunking gateway after responds with a contextID in this 4021 example 1. The ephemeral termination is created and added to the same 4022 context as the physical termination. The ephemeral termination added 4023 in this example is EPHA. The local parameters are specified in the 4024 response. The IP address chosen for the media transport in this 4025 example is 209.110.59.33, and the port number specified 30000. 4027 Step 10 4028 R2TGW to MGC: 4029 MEGACO/1 [209.110.59.34]: 25000 4030 Reply = 1236{ 4031 Context = 1 { 4032 Add = Trunk1/line1, 4033 Add = EphA{ 4034 Media { 4035 Local { 4036 v=0 4037 c=IN IP4 209.110.59.33 4038 m=audio 30000 RTP/AVP 4 4039 } 4040 } ; RTP profile for G723 is 4 4041 } 4042 } 4043 } 4044 The MGC after receiving the response generates similar transaction 4045 with two ADD commands to the other TGW. The local SDP information 4046 specified in by the R2TGW is used to as remote SDP information for 4047 the other TGW. The MGC conveys this information in the Add command. 4049 Step 11 4050 MGC to TGW 4051 MEGACO/1 [216.33.33.61]: 27000 4052 Transaction = 1237{ 4053 Context = $ { 4054 Add = Trunk2/$ {Media { 4055 LocalControl {Mode = SendRecv}}, 4056 }, 4057 Add = $ {Media { 4058 LocalControl { 4059 Mode = Receiveonly, 4060 }, 4061 Local { 4062 v=0 4063 c=IN IP4 $ 4064 m=audio $ RTP/AVP 4 4066 } 4067 Remote{ 4068 v=0 4069 c=IN IP4 209.110.59.33 4070 m=audio 30000 RTP/AVP 4 4071 } 4072 } ; RTP profile for G723 is 4 4073 } 4074 } 4075 } 4077 The Trunking gateway creates a context with ContextId 2. It adds the 4078 physical termination Trunk2/line1 in that context. The ephemeral 4079 termination EPHB is created with the specified SDP information. The 4080 response from the MG specifies the local SDP information. 4082 Step 12 4083 TGW to MGC: 4084 MEGACO/1 [207.176.47.89]: 26000 4085 Reply = 1237{ 4086 Context = 2 { 4087 Add = Trunk2/line1, 4088 Add = EphB{ 4089 Media { 4090 Local { 4091 v=0 4092 c=IN IP4 207.176.47.90 4093 m=audio 40000 RTP/AVP 4 4094 } 4095 } ; RTP profile for G723 is 4 4096 } 4097 } 4098 } 4099 The MGC after receiving the response generates a modify command to the 4100 R2TGW to inform the local SDP information of TGW as the remote SDP for 4101 the R2TGW. 4103 Step 13 4104 MGC to R2TGW 4105 MEGACO/1 [216.33.33.61]: 27000 4106 Transaction = 1238{ 4107 Context = 1 { 4108 Modify = EphA 4109 {Media { 4110 LocalControl { 4111 Mode = SendRecv, 4112 }, 4113 Remote{ 4114 v=0 4115 c=IN IP4 207.176.47.90 4116 m=audio 40000 RTP/AVP 4 4117 } 4118 } 4120 } 4121 } 4122 } 4123 } 4125 The R2 Trunking gateway responds to the Modify command. 4127 Step 14 4128 R2TGW to MGC: 4129 MEGACO/1 [207.176.47.89]: 26000 4130 Reply = 1238{ 4131 Context = 1 { 4132 Modify = EphA 4133 } 4134 } 4135 The RTP media transfer takes place. The user connected to the R2 4136 exchange domain terminates the call. The clear forwards signal 4137 generated by the R2 exchange connected to the R2 TGW is detected and 4138 reported to the MGC as the clear event in the R2 package. The clear 4139 back signal, which is part of the clear event, enables the R2TGW to 4140 generate the clear back signal. The clear event detection is 4141 reported to MGC as part of the Notify command. 4143 Step 15 4144 R2TGW to MGC: 4145 MEGACO/1 [209.110.59.34]:25000 4146 Transaction = 2003 { 4147 Context = 1 { 4148 Notify = TermA {ObservedEvents =1112 { 4149 20010402T10030000:R2/clear} 4150 } 4151 } 4152 } 4153 The MGC responds to the RGWs Notify message. 4155 Step 16 4156 MGC to R2TGW: 4157 MEGACO/1 [216.33.33.61]:27000 4158 Reply = 2003 { 4159 Context = 1 { 4160 Notify = TermA 4161 } 4162 } 4163 The MGC generates necessary command to the SS7 switch like the REL 4164 message. The SS7 switch responds with the RLC message. The MGC now 4165 generates commands to both the TGWs for subtracting the terminations 4166 from the contexts created. 4168 Step 17 4169 MGC to R2TGW: 4170 MEGACO/1 [216.33.33.61]: 27000 4171 Transaction = 1239{ 4172 Context = 1 { 4173 Subtract = Trunk1/line1{Audit{ }}, 4174 Subtract = EphA {Audit{Statistics}} 4175 } 4176 } 4177 The R2TGW responds to the subtract commands generated by MGC. 4179 Step 18 4180 TGW to MGC: 4181 MEGACO/1 [209.110.59.34]:25000 4182 Reply = 1239{ 4183 Context = 1 { 4184 Subtract = Trunk1/line1 4185 Subtract = EphA { 4186 Statistics { 4187 rtp/ps=987, ; packets sent 4188 nt/os=65432, ; octets sent 4189 rtp/pr=1234, ; packets received 4190 nt/or=56789, ; octets received 4191 rtp/pl=10, ; % packets lost 4192 rtp/jit=30, 4193 rtp/delay=30 ; average latency 4194 } 4195 } 4196 } 4197 } 4198 The MGC generates similar transaction with two Subtract command for 4199 subtracting both the physical and ephemeral terminations from the 4200 second Trunking gateway. 4202 Step 19 4203 MGC to TGW: 4204 MEGACO/1 [216.33.33.61]: 27000 4205 Transaction = 1240 4206 Context = 2 { 4207 Subtract = Trunk2/line1{Audit{ }}, 4208 Subtract = EphB {Audit{Statistics}} 4209 } 4210 } 4211 The RGW responds to the subtract commands generated by MGC. 4213 Step 20 4214 TGW to MGC: 4215 MEGACO/1 [207.176.47.89]:26000 4216 Reply = 1240 4217 Context = 2 { 4218 Subtract = Trunk2/line1 4219 Subtract = EphB { 4220 Statistics { 4221 rtp/ps=987, ; packets sent 4222 nt/os=65432, ; octets sent 4223 rtp/pr=1234, ; packets received 4224 nt/or=56789, ; octets received 4225 rtp/pl=10, ; % packets lost 4226 rtp/jit=30, 4227 rtp/delay=30 ; average latency 4228 } 4229 } 4230 } 4231 } 4233 2.9 Call between R1 trunk in TGW and SS7 trunk in TGW 4235 In the earlier section we illustrated the Megaco messages between MGC 4236 and two Trunking gateway one that perform CCS SS7 and the other CAS 4237 R2 signaling. This section illustrates another similar scenario, but 4238 now the call is initiated by the user that originates R1 signaling to 4239 the user connected to CCS SS7 signaling. Both the Trunking gateways 4240 are assumed to be controlled by the same Media Gateway Controller. 4241 The packages that are considered are R1 package, network package, 4242 MF tone detection package and RTP package. 4244 ______________________________________________________________________ 4245 | | | | 4246 R1Exchange | TGW1 | MGC | TGW2 | SS7 Switch 4247 ____________|____________|___________|______________|_________________ 4248 | | | | | 4249 | |<-----------| | | 4250 | |Modify ED:sz{SD:sa ED:addr, cl} | 4251 | |----------->| | | 4252 | |Modify Resp | | | 4253 |----------->| | | | 4254 | Seize | | | | 4255 |<-----------| | | | 4256 |SeizeAck |----------->| | | 4257 | |Notify OE:sa| | | 4258 |----------->| | | | 4259 | KP | | | | 4260 |----------->| | | | 4261 | Digit1 | | | | 4262 | : | | | | 4263 | : | | | | 4264 |----------->| | | | 4265 | ST | | | | 4266 | |----------->| | | 4267 | |Notify OE:addr | | 4268 | | |----------->| | 4269 | | | IAM |--------------->| 4270 | |<-----------| | IAM | 4271 | |Notify Resp | |<---------------| 4272 | | |<-----------| ACM | 4273 | | | ACM | | 4274 | |<-----------| | | 4275 | |Modify Phy | | | 4276 |<-----------| | | | 4277 | Answer | | | | 4278 | |----------->| | | 4279 | |Modify Resp | | | 4280 | |<-----------| | | 4281 | | Add Phy | | | 4282 | | Add Eph Local Unspecified | 4283 | |----------->| | | 4284 | |Add Phy Resp| | | 4285 | |Add Eph Resp Local Specified | 4286 | | |----------->| | 4287 | | | Add Phy | | 4288 | | | Add EPh Local Unspecified | 4289 | | | Remote Specified | 4290 | | |<-----------| | 4291 | | |Add Phy Resp| | 4292 | |<-----------| | | 4293 | |Modify Eph | | | 4294 | |----------->| | | 4295 | |Modify Resp | | | 4296 | |/-----------------------\| | 4297 | | RTP MEDIA | | 4298 | |\-----------------------/| | 4299 |----------->| | | | 4300 |Clear Forward | | | 4301 | |----------->| | | 4302 |<-----------|Notify OE:R1/clear | | 4303 |Clear Back | | | | 4304 | |<-----------| | | 4305 | |Notify Resp | | | 4306 | | |----------->| | 4307 | | | REL |--------------->| 4308 | | | | REL | 4309 | | | |<---------------| 4310 | | |<-----------| RLC | 4311 | | | RLC | | 4312 | |<-----------| | | 4313 | |Sub Phy | | | 4314 | |Sub Eph | | | 4315 | |----------->| | | 4316 | |Sub Phy Resp| | | 4317 | |Sub Eph Resp Statistics | | 4318 | | |----------->| | 4319 | | |Sub Phy | | 4320 | | |Sub Eph | | 4321 | | |<-----------| | 4322 | | |Sub Phy Resp| | 4323 | | |Sub Eph Resp Statistics | 4324 |____________|____________|____________|________________| 4326 The MGC generates a Modify command towards the R1 Trunking gateway 4327 with the seize event and an embedded seize acknowledgement signal. 4328 The digit map in this scenario is assumed to be provisioned in the MG 4329 (shown to be 2XXX which may not be true for practical R1 exchanges). 4330 The seize event has a embedded signal seizeack to be applied after 4331 detection of seize event. The embedded signal is accompanied by 4332 another embedded events namely the clear event to detect the 4333 clear forwards signal if generated from the R1 domain. 4335 Step 1 4336 MGC to R1TGW 4337 MEGACO/1 [216.33.33.61]: 27000 4338 Transaction = 1234 { 4339 Context = - { 4340 Modify = Trunk1/line1 { 4341 Events=1111{R1/sz Embed{ signals {R1/sd}, Events=1112 { mfd/ce{dmap}, 4342 R1/clearforward signals { R1/clearback }, R1/address}} 4343 } 4344 } 4345 } 4346 The R1TGW after receiving the Modify command does the command 4347 processing and responds with Modify command response. 4349 Step 2 4350 R1TGW to MGC 4351 MEGACO/1 [209.110.59.34]: 25000 4352 Reply = 1234 { 4353 Context = - { 4354 Modify = Trunk1/line1 4355 } 4356 } 4358 In this example as mentioned earlier, the call is originated from a 4359 user connected to the R1 domain of PSTN. The R1 exchange that is 4360 connected to the R1 Trunking gateway generates the seize signal. The 4361 seize signal is identified by the R1TGW and seize event is detected. 4362 The seize event is notified to the MGC. The R1TGW meanwhile does the 4363 embedded descriptor processing for the seize event. The application 4364 of the seizeack and detection of clear event is activated on the 4365 specific circuit group. The Notify command is generated 4366 towards the MGC. 4368 Step 3 4369 R1GW to MGC: 4370 MEGACO/1 [209.110.59.34]:25000 4371 Transaction = 2000 { 4372 Context = - { 4373 Notify = Trunk1/line1 {Observed Events =1111 { 4374 20010202T10000000:R1/sz}} 4375 } 4376 } 4378 the MGC responds the Notify command with the Notify response. 4380 Step 4 4381 MGC to R1GW: 4382 MEGACO/1 [216.33.33.61]: 27000 4383 Reply = 2000 { 4384 Context = - {Notify = Trunk1/line1} 4385 } 4386 The R1TGW collects the digits and reports the same to the MGC as 4387 parameters of the address event The digit completion event of the MF 4388 detection package is used here. This is extracted from the MF tone 4389 detection package. 4391 Step 5 4392 R1GW to MGC: 4393 MEGACO/1 [209.110.59.34]:25000 4394 Transaction = 2001 { 4395 Context = - { 4396 Notify = Trunk1/line1 {Observed Events =1112 { 4397 20010302T10000000:mfd/ce{ds=2992}} 4398 } 4399 } 4401 the MGC responds the Notify command with the Notify response. 4403 Step 6 4404 MGC to R1GW: 4405 MEGACO/1 [216.33.33.61]: 27000 4406 Reply = 2001 { 4407 Context = - {Notify = Trunk1/line1} 4408 } 4409 The MGC then initiates the necessary signaling towards the exchange to 4410 which the destination user is connected. In this example the MGC has 4411 to generates SS7 messages to the SS7 switch. The IAM message is sent 4412 with all the necessary address signaling information. The SS7 switch 4413 responds with the ACM message. 4415 The MGC sends a Modify command towards the R1 TGW to indicate that has 4416 gone offhook. The answer signal is sent in the Signals descriptor. 4418 Step 7 4419 MGC to R1TGW 4420 MEGACO/1 [216.33.33.61]: 27000 4421 Transaction = 1235 { 4422 Context = - { 4423 Modify = Trunk1/line1 4424 {signals{ R1/ans } } 4425 } 4426 } 4428 The R1 Trunking gateway responds to the Modify command. 4430 Step 8 4431 TGW to MGC: 4432 MEGACO/1 [207.176.47.89]: 26000 4433 Reply = 1235 { 4434 Context = - { 4435 Modify = Trunk1/line1 4436 } 4437 } 4439 The MGC after receiving the ANM message generates commands to both the 4440 Trunking gateways to add physical circuits and create ephemeral 4441 terminations. The MGC in its message to the R1TGW in its signal 4442 descriptor lists the answer signal to indicate that the call 4443 establishment is successful and the end user is free to receive the 4444 call. 4446 Step 9 4447 MGC to R1GW 4448 MEGACO/1 [216.33.33.61]: 27000 4449 Transaction = 1236 { 4450 Context = $ { 4451 Add = Trunk1/line1 {Media { 4452 LocalControl {Mode = SendRecv}}, 4453 }, 4454 Add = $ {Media { 4455 LocalControl { 4456 Mode = Receiveonly, 4457 }, 4458 Local { 4459 v=0 4460 c=IN IP4 $ 4461 m=audio $ RTP/AVP 4 4463 } 4464 } 4465 } 4466 } 4467 } 4468 } 4470 The R1 Trunking gateway after responds with a contextID in this 4471 example 1. The ephemeral termination is created and added to the same 4472 context as the physical termination. The ephemeral termination added 4473 in this example is EPHA. The local parameters are specified in the 4474 response. The IP address chosen for the media transport in this 4475 example is 209.110.59.33, and the port number specified 30000. 4477 Step 10 4478 R1TGW to MGC: 4479 MEGACO/1 [209.110.59.34]: 25000 4480 Reply = 1236 { 4481 Context = 1 { 4482 Add = Trunk1/line1, 4483 Add = EphA{ 4484 Media { 4485 Local { 4486 v=0 4487 c=IN IP4 209.110.59.33 4488 m=audio 30000 RTP/AVP 4 4489 } 4490 } ; RTP profile for G723 is 4 4491 } 4492 } 4493 } 4494 The MGC after receiving the response generates similar transaction 4495 with two ADD commands to the other TGW. The local SDP information 4496 specified in by the R1TGW is used to as remote SDP information for the 4497 other TGW. The MGC conveys this information in the Add command. 4499 Step 11 4500 MGC to TGW 4501 MEGACO/1 [216.33.33.61]: 27000 4502 Transaction = 1237 { 4503 Context = $ { 4504 Add = Trunk2/$ {Media { 4505 LocalControl {Mode = SendRecv}}, 4506 }, 4507 Add = $ {Media { 4508 LocalControl { 4509 Mode = Receiveonly, 4510 }, 4511 Local { 4512 v=0 4513 c=IN IP4 $ 4514 m=audio $ RTP/AVP 4 4516 } 4517 Remote{ 4518 v=0 4519 c=IN IP4 209.110.59.33 4520 m=audio 30000 RTP/AVP 4 4521 } 4523 } ; RTP profile for G723 is 4 4524 } 4525 } 4526 } 4528 The Trunking gateway creates a context with ContextId 2. It adds the 4529 physical termination Trunk2/line1 in that context. The ephemeral 4530 termination EPHB is created with the specified SDP information. The 4531 response from the MG specifies the local SDP information. 4533 Step 12 4534 R1GW to MGC: 4535 MEGACO/1 [207.176.47.89]: 26000 4536 Reply = 1237 { 4537 Context = 2 { 4538 Add = Trunk2/line1, 4539 Add = EphB{ 4540 Media { 4541 Local { 4542 v=0 4543 c=IN IP4 207.176.47.90 4544 m=audio 40000 RTP/AVP 4 4545 } 4546 } ; RTP profile for G723 is 4 4547 } 4548 } 4549 } 4550 The MGC after receiving the response generates a modify command to the 4551 R1TGW to inform the local SDP information of TGW as the remote SDP for 4552 the R1TGW. 4554 Step 13 4555 MGC to R1TGW 4556 MEGACO/1 [216.33.33.61]: 27000 4557 Transaction = 1238 { 4558 Context = 1 { 4559 Modify = EphA 4560 {Media { 4561 LocalControl { 4562 Mode = SendRecv, 4563 }, 4564 Remote{ 4565 v=0 4566 c=IN IP4 207.176.47.90 4567 m=audio 40000 RTP/AVP 4 4568 } 4569 } 4570 } 4571 } 4572 } 4573 } 4575 The R1 Trunking gateway responds to the Modify command. 4577 Step 14 4578 R1TGW to MGC: 4579 MEGACO/1 [207.176.47.89]: 26000 4580 Reply = 1238 { 4581 Context = 1 { 4582 Modify = EphA 4583 } 4584 } 4585 The RTP media transfer takes place. The user connected to the R1 4586 exchange domain terminates the call. The clear forwards signal 4587 generated by the R1 exchange connected to the R1 TGW is detected and 4588 reported to the MGC as the clear event in the R1 package. The 4589 clear back signal, which is part of the clear event, enables the R1TGW 4590 to generate the clear back signal. The clear event detection is 4591 reported to MGC as part of the Notify command. 4593 Step 15: 4594 R1TGW to MGC: 4595 MEGACO/1 [209.110.59.34]:25000 4596 Transaction = 2003 { 4597 Context = 1 { 4598 Notify = TermA {ObservedEvents =1112 { 4599 20010402T10030000:R1/clear} 4600 } 4601 } 4602 } 4603 The MGC responds to the R1GWs Notify message. 4605 Step 16 4606 MGC to R1TGW: 4607 MEGACO/1 [216.33.33.61]:27000 4608 Reply= 2003 { 4609 Context = 1 { 4610 Notify = TermA 4611 } 4612 } 4613 The MGC generates necessary command to the SS7 switch like the 4614 REL message. The SS7 switch responds with the RLC message. The MGC now 4615 generates commands to both the TGWs for subtracting the terminations 4616 from the contexts created. 4618 Step 17 4619 MGC to R1TGW: 4620 MEGACO/1 [216.33.33.61]: 27000 4621 Transaction = 1239 { 4622 Context = 1 { 4623 Subtract = Trunk1/line1{Audit{ }}, 4624 Subtract = EphA {Audit{Statistics}} 4626 } 4627 } 4628 The R2TGW responds to the subtract commands generated by MGC. 4630 Step 18 4631 R1TGW to MGC: 4632 MEGACO/1 [209.110.59.34]:25000 4633 Reply = 1239 { 4634 Context = 1 { 4635 Subtract = Trunk1/line1 4636 Subtract = EphA { 4637 Statistics { 4638 rtp/ps=987, ; packets sent 4639 nt/os=65432, ; octets sent 4640 rtp/pr=1234, ; packets received 4641 nt/or=56789, ; octets received 4642 rtp/pl=10, ; % packets lost 4643 rtp/jit=30, 4644 rtp/delay=30 ; average latency 4645 } 4646 } 4647 } 4648 } 4649 The MGC generates similar transaction with two Subtract command for 4650 subtracting both the physical and ephemeral terminations from the 4651 second Trunking gateway. 4653 Step 19 4654 MGC to TGW: 4655 MEGACO/1 [216.33.33.61]: 27000 4656 Transaction = 1240 { 4657 Context = 2 { 4658 Subtract = Trunk2/line1{Audit{ }}, 4659 Subtract = EphB {Audit{Statistics}} 4660 } 4661 } 4662 The R1GW responds to the subtract commands generated by MGC. 4664 Step 20 4665 TGW to MGC: 4666 MEGACO/1 [207.176.47.89]:26000 4667 Reply = 1240 4668 Context = 2 { 4669 Subtract = Trunk2/line1 4670 Subtract = EphB { 4671 Statistics { 4672 rtp/ps=987, ; packets sent 4673 nt/os=65432, ; octets sent 4674 rtp/pr=1234, ; packets received 4675 nt/or=56789, ; octets received 4676 rtp/pl=10, ; % packets lost 4677 rtp/jit=30, 4678 rtp/delay=30 ; average latency 4679 } 4680 } 4681 } 4682 } 4684 2.10 Call between SS7 trunk in TGW and R1 trunk in TGW 4685 This section of the call flow illustrates the call between two 4686 Trunking gateways, one that does R1 signaling towards one end and the 4687 second TGW CCS SS7. In this example the user in the CCS SS7 signaling 4688 network originates the call. The destination user is connected to the 4689 PSTN network with R1 signaling. 4691 ______________________________________________________________________ 4692 | | | | 4693 SS7 Switch | TGW1 | MGC | TGW2 | R1Exch 4694 ____________|____________|___________|______________|_________________ 4695 | | | | | 4696 |----------->| | | | 4697 | IAM | | | | 4698 | |---------->| | | 4699 | | IAM | | | 4700 | | |----------->| | 4701 | | |Modify Phy Seize | 4702 | | | |--------------->| 4703 | | | | Seize | 4704 | | |<-----------| | 4705 | | |Modify Resp | | 4706 | | | |<---------------| 4707 | | | | Wink | 4708 | | |<-----------| | 4709 | | |Notify OE:sa|--------------->| 4710 | | |----------->| KP,Digits,ST | 4711 | | |Notify Resp | | 4712 | |<----------| | | 4713 | | ACM | | | 4714 |<-----------| | | | 4715 | ACM | | | | 4716 | | | |<---------------| 4717 | | | | Answer | 4718 | | |<-----------| | 4719 | | | Notify OE:ans | 4720 | | |----------->| | 4721 | | |Notify Resp | | 4722 | |<----------| | | 4723 | | ANM | | | 4724 |<-----------| | | | 4725 | ANM | | | | 4726 | |<----------| | | 4727 | |Add Phy | | | 4728 | |Add $ Local (Unspecified) | 4729 | |---------->| | | 4730 | |Add Phy Resp | | 4731 | |Add Eph Resp | | 4732 | | |----------->| | 4733 | | |Add Phy | | 4734 | | |Add $ Local (Unspecified) | 4735 | | | Remote (Specified) | 4736 | | |<-----------| | 4737 | | |Add Phy Resp| | 4738 | | |Add Eph Resp| | 4739 | |<----------| | | 4740 | |Modify Eph | | | 4741 | |---------->| | | 4742 | |Modify Resp| | | 4743 | |/----------------------\| | 4744 | | RTP MEDIA | | 4745 | |\----------------------/| | 4746 |----------->| | | | 4747 | REL | | | | 4748 | |---------->| | | 4749 | | REL | | | 4750 | | |----------->| | 4751 | | |Modify Phy ED:R1/clear | 4752 | | | |--------------->| 4753 | | | | Clear Forward | 4754 | | |<-----------| | 4755 | | |Modify Resp | | 4756 | | | |<---------------| 4757 | | | | Clear Back | 4758 | | |<-----------| | 4759 | | | Notify OE:clear | 4760 | | |----------->| | 4761 | | | Notify Resp| | 4762 | |<----------| | | 4763 | | RLC | | | 4764 |<-----------| | | | 4765 | RLC | | | | 4766 | |<----------| | | 4767 | |Sub Phy | | | 4768 | |Sub Eph | | | 4769 | |---------->| | | 4770 | |Sub Phy Resp | | 4771 | |Sub Eph Resp Statistics | | 4772 | | |----------->| | 4773 | | |Sub Phy | | 4774 | | |Sub Eph | | 4775 | | |<-----------| | 4776 | | |Sub Phy Resp| | 4777 | | |Sub Eph Resp Statistics | 4778 |____________|___________|____________|________________| 4780 When the MGC through the signaling gateway receives the IAM it 4781 generates a Modify message towards the Trunking gateway that supports 4782 R1 package. The signal descriptor has the seize signal and the events 4783 descriptor has the event seizeack. The seizeack event has an embedded 4784 signal "address". The Trunking gateway is intended to seize a circuit 4785 and apply the address signals after the seize acknowledgement is 4786 received from the other R1 exchange. The calling party information 4787 can also be provided in the address signal. For simplicity it is 4788 omitted here. The embedded event of the seize acknowledgement event 4789 is the answer. This event has to be reported when the digits reach the 4790 other R1 exchange and there is answer from the terminating R1 exchange. 4791 The message from MGC to R1TGW is as follows. 4793 Step 1 4794 MGC to R1TGW 4795 MEGACO/1 [216.33.33.61]: 27000 4796 Transaction = 1234 { 4797 Context = - { 4798 Modify = Trunk1/line1 { 4799 Signals = { R1/sz} 4800 Events = 1111 {R1/sd Embed { signals {R1/address { ds = 2989} }, 4801 Events=1112 { R1/clear, R1/ans} 4802 } 4803 } 4804 } 4805 The R1TGW after receiving the Modify command does the command 4806 processing and responds with Modify command response. 4808 Step 2 4809 R1TGW to MGC 4810 MEGACO/1 [209.110.59.34]: 25000 4811 Reply = 1234 { 4812 Context = - { 4813 Modify = Trunk1/line1 4814 } 4815 } 4817 The R1 TGW applies seize signal on the specified circuit group and 4818 after receiving the acknowledgement from the other R1 exchange 4819 updates the embedded events descriptor as the events descriptor. The 4820 R1TGW also generates a Notify command towards the MGC to indicate 4821 that the seize acknowledgement has been received. 4823 Step 3 4824 R1GW to MGC: 4825 MEGACO/1 [209.110.59.34]:25000 4826 Transaction = 2000 { 4827 Context = - { 4828 Notify = Trunk1/line1{Observed Events =1111 { 4829 20010202T10000000:R1/sd}} 4830 } 4831 } 4833 the MGC responds the Notify command with the Notify response. 4835 Step 4 4836 MGC to R1GW: 4837 MEGACO/1 [216.33.33.61]: 27000 4838 Reply = 2000 { 4839 Context = - {Notify = Trunk1/line1} 4840 } 4842 The MGC now generates the address complete message to the SS7 switch 4843 that has generated the IAM message. The R1TGW after receiving the 4844 answer event from the other R1 exchange generates message to notify 4845 this event. 4847 Step 5 4848 R1GW to MGC: 4849 MEGACO/1 [209.110.59.34]:25000 4850 Transaction = 2001 { 4851 Context = - { 4852 Notify = Trunk1/line1{Observed Events =1112 { 4853 20010202T10000000:R1/ans}} 4854 } 4855 } 4857 the MGC responds the Notify command with the Notify response. 4859 Step 6 4860 MGC to R1GW: 4861 MEGACO/1 [216.33.33.61]: 27000 4862 Reply = 2001 { 4863 Context = - {Notify = Trunk1/line1} 4864 } 4866 MGC generates the ANM message towards the SS7 switch through the 4867 signaling gateway. It also generates commands to add terminations into 4868 specific contexts. It generates a single transaction with two Add 4869 commands towards the TGW that supports R1 terminations. One command 4870 is to add the physical circuit group Trunk1/line and the other for 4871 the ephemeral termination. The SDP information is unspecified that 4872 enables the TGW to choose the underspecified parameters. 4874 Step 7 4875 MGC to R1TGW 4876 MEGACO/1 [216.33.33.61]: 27000 4877 Transaction = 1235{ 4878 Context = $ { 4879 Add = Trunk1/line1 {Media { 4880 LocalControl {Mode = SendRecv}}, 4881 }, 4882 Add = $ {Media { 4883 LocalControl { 4884 Mode = Receiveonly, 4885 }, 4886 Local { 4887 v=0 4888 c=IN IP4 $ 4889 m=audio $ RTP/AVP 4 4891 } 4892 } 4893 } 4894 } 4895 } 4896 } 4898 The R1 Trunking gateway after receiving the Add command responds with 4899 a contextID in this example 1. The ephemeral termination is created 4900 and added to the same context as the physical termination. The 4901 ephemeral termination added in this example is EPHA. The local 4902 parameters are specified in the response. The IP address chosen for 4903 the media transport in this example is 209.110.59.33, and the port 4904 number specified 30000. 4906 Step 8 4907 R1TGW to MGC: 4908 MEGACO/1 [209.110.59.34]: 25000 4909 Reply = 1235{ 4910 Context = 1 { 4911 Add = Trunk1/line1, 4912 Add = EphA{ 4913 Media { 4914 Local { 4915 v=0 4916 c=IN IP4 209.110.59.33 4917 m=audio 30000 RTP/AVP 4 4918 } 4919 } ; RTP profile for G723 is 4 4920 } 4921 } 4922 } 4923 The MGC after receiving the response generates similar transaction 4924 with two ADD commands to the other TGW. The local SDP information 4925 specified in by the R1TGW is used to as remote SDP information for 4926 the other TGW. The MGC conveys this information in the Add command. 4928 Step 9 4929 MGC to TGW 4930 MEGACO/1 [216.33.33.61]: 27000 4931 Transaction = 1236{ 4932 Context = $ { 4933 Add = Trunk2/$ {Media { 4934 LocalControl {Mode = SendRecv}}, 4935 }, 4936 Add = $ {Media { 4937 LocalControl { 4938 Mode = Receiveonly, 4939 }, 4940 Local { 4941 v=0 4942 c=IN IP4 $ 4943 m=audio $ RTP/AVP 4 4945 } 4946 Remote{ 4947 v=0 4948 c=IN IP4 209.110.59.33 4949 m=audio 30000 RTP/AVP 4 4950 } 4951 } ; RTP profile for G723 is 4 4952 } 4953 } 4954 } 4956 The Trunking gateway creates a context with ContextId 2. It adds the 4957 physical termination Trunk2/line1 in that context. The ephemeral 4958 termination EPHB is created with the specified SDP information. The 4959 response from the MG specifies the local SDP information. 4961 Step 10 4962 RGW to MGC: 4963 MEGACO/1 [207.176.47.89]: 26000 4964 Reply = 1236{ 4965 Context = 2 { 4966 Add = Trunk2/line1, 4967 Add = EphB{ 4968 Media { 4969 Local { 4970 v=0 4971 c=IN IP4 209.110.59.33 4972 m=audio 30000 RTP/AVP 4 4973 } 4974 } ; RTP profile for G723 is 4 4975 } 4976 } 4977 } 4978 The MGC after receiving the response generates a modify command to 4979 the R1TGW to inform the local SDP information of TGW as the remote SDP 4980 for the R1TGW. 4982 Step 11 4983 MGC to TGW 4984 MEGACO/1 [216.33.33.61]: 27000 4985 Transaction = 1237{ 4986 Context = 1 { 4987 Modify = EphA 4988 {Media { 4989 LocalControl { 4990 Mode = SendRecv, 4991 }, 4992 Remote{ 4993 v=0 4994 c=IN IP4 209.110.59.33 4995 m=audio 30000 RTP/AVP 4 4996 } 4997 } 4998 } 4999 } 5000 } 5001 } 5003 The R1 Trunking gateway responds to the Modify command. 5005 Step 12 5006 TGW to MGC: 5007 MEGACO/1 [207.176.47.89]: 26000 5008 Reply = 1237{ 5009 Context = 1 { 5010 Modify = EphA 5011 } 5012 } 5013 The RTP media flow is established and the two users connected to the 5014 SS7 trunk and R1 trunk starts the conversation. After conversation any 5015 of the user can disconnect the call in this example the user connected 5016 to the SS7 domain releases the call. The SS7 switch generates a REL 5017 message towards the MGC. The Signaling gateway forwards the same 5018 request towards the MGC. The MGC initiates the tearing down of the 5019 call. This is done initially by generating a Modify command towards 5020 the R1 TGW to generate clear forward signal towards the R1 exchange. 5021 In the message the MGC sends a signal descriptor with clear signals 5022 and events descriptor with the clear in the event. The event in the 5023 events descriptor is for detecting the clear back signal generated from 5024 the R1 exchange. 5026 Step 13 5027 MGC to TGW: 5028 MEGACO/1 [216.33.33.61]: 27000 5029 Transaction = 1238{ 5030 Context = 1 { 5031 Context = Trunk1/line1{ 5032 signal { R1/clear}, 5033 Events = 1113{ R1/clear} 5034 } 5035 } 5037 The R1 TGW after receiving the commands does the signals and events 5038 descriptor processing and responds to the MGC with the Modify command 5039 response. 5041 Step 14 5042 R1TGW to MGC 5043 MEGACO/1 [209.110.59.34]: 25000 5044 Reply = 1238 { 5045 Context = 1 { 5046 Modify = Trunk1/line1 5047 } 5048 } 5050 Mean while the MGC generates the subtract message towards the 5051 originating TGW to remove the terminations from the newly 5052 created context. 5054 Step 15 5055 MGC to TGW: 5056 MEGACO/1 [216.33.33.61]: 27000 5057 Transaction = 1239 5058 Context = 2 { 5059 Subtract = Trunk2/line1{Audit{ }}, 5060 Subtract = EphB {Audit{Statistics}} 5061 } 5062 } 5063 The RGW responds to the subtract commands generated by MGC. 5065 Step 16 5066 TGW to MGC: 5067 MEGACO/1 [207.176.47.89]:26000 5068 Reply = 1239 5069 Context = 2 { 5070 Subtract = Trunk2/line1 5071 Subtract = EphB { 5072 Statistics { 5073 rtp/ps=987, ; packets sent 5074 nt/os=65432, ; octets sent 5075 rtp/pr=1234, ; packets received 5076 nt/or=56789, ; octets received 5077 rtp/pl=10, ; % packets lost 5078 rtp/jit=30, 5079 rtp/delay=30 ; average latency 5080 } 5082 } 5083 } 5084 } 5085 The MGC after receiving the response from the TGW generates the 5086 Release complete message RLC towards the SS7 switch through the 5087 Signaling Gateway. 5089 The R1 TGW after receiving the clear back signal from the other 5090 R1 exchange detects it and generates a Notify command towards the MGC. 5092 Step 17 5093 R1GW to MGC: 5094 MEGACO/1 [209.110.59.34]:25000 5095 Transaction = 2002 { 5096 Context = - { 5097 Notify = TermA {Observed Events =1113 { 5098 20030202T10000000:R1/clear}} 5099 } 5100 } 5102 the MGC responds the Notify command with the Notify response. 5104 Step 18 5105 MGC to R1GW: 5106 MEGACO/1 [216.33.33.61]: 27000 5107 Reply = 2002 { 5108 Context = - {Notify = TermA} 5109 } 5110 MGC after receiving the notify command generates subtract command to 5111 remove both the physical termination and ephemeral termination. 5113 Step 19 5114 MGC to R1TGW: 5115 MEGACO/1 [216.33.33.61]: 27000 5116 Transaction = 1240{ 5117 Context = 1 { 5118 Subtract = Trunk1/line1{Audit{ }}, 5119 Subtract = EphA {Audit{Statistics}} 5120 } 5121 } 5122 The R1TGW responds to the subtract commands generated by MGC. 5124 Step 20 5125 R1TGW to MGC: 5126 MEGACO/1 [209.110.59.34]:25000 5127 Reply = 1240{ 5128 Context = 1 { 5129 Subtract = Trunk1/line1 5130 Subtract = EphA { 5131 Statistics { 5132 rtp/ps=987, ; packets sent 5133 nt/os=65432, ; octets sent 5134 rtp/pr=1234, ; packets received 5135 nt/or=56789, ; octets received 5136 rtp/pl=10, ; % packets lost 5137 rtp/jit=30, 5138 rtp/delay=30 ; average latency 5139 } 5140 } 5141 } 5142 } 5143 Now the termination is free to take part in other calls. 5145 2.11 Call between ISDN trunk in TGW and SS7 trunk in TGW 5147 This section illustrates the Megaco message flow between MGC and two 5148 Trunking media gateways one that perform ISDN signaling towards the 5149 user and the other TGW performs SS7 signaling. In this example we 5150 assume that an ISDN user initiates that call. 5152 ______________________________________________________________________ 5153 | | | | 5154 ISDNSwitch | TGW1/SG | MGC | TGW2/SG | SS7Switch 5155 ____________|____________|___________|______________|_________________ 5156 | | | | | 5157 |----------->| | | | 5158 | Setup |---------->| | | 5159 | | Setup | | | 5160 | | |----------->| | 5161 | | | IAM |--------------->| 5162 | | | | IAM | 5163 | | | |<---------------| 5164 | | |<-----------| ACM | 5165 | | | ACM | | 5166 | |<----------| | | 5167 |<-----------| Alerting| | | 5168 | Alerting | | |<---------------| 5169 | | |<-----------| ANM | 5170 | |<----------| ANM | | 5171 |<-----------| Connect | | | 5172 | Connect |<----------| | | 5173 | |Add Phy | | | 5174 | |Add Eph Local unspecfied | 5175 | |---------->| | | 5176 | |Add Phy Resp | | 5177 | |Add Eph Resp Local Specified | 5178 | | |----------->| | 5179 | | |Add Phy | | 5180 | | |Add Eph Local Unspecified | 5181 | | | Remote Specified | 5182 | | |<-----------| | 5183 | | |Add Phy Resp| | 5184 | | |Add Eph Resp Remote Specified| 5185 | |<----------| | | 5186 | |Modify EPh Remote Specified | 5187 | |---------->| | | 5188 | |Modify Eph Resp | | 5189 | |/----------------------\| | 5190 | | RTP MEDIA | | 5191 | |\----------------------/| | 5192 |----------->| | | | 5193 | Disconnect |---------->| | | 5194 | | Disconnect|----------->| | 5195 | | | REL |--------------->| 5196 | | | | REL | 5197 | | | |<---------------| 5198 | | |<-----------| RLC | 5199 | |<----------| RLC | | 5200 |<-----------| Release | | | 5201 | Release | | | | 5202 |----------->| | | | 5203 | Release Complete | | | 5204 | |---------->| | | 5205 | |Release Complete | | 5206 | |<----------| | | 5207 | |Sub Phy | | | 5208 | |Sub Eph | | | 5209 | |---------->| | | 5210 | |Sub Phy Resp | | 5211 | |Sub Eph Resp Statistics | | 5212 | | |----------->| | 5213 | | |Sub Phy | | 5214 | | |Sub Eph | | 5215 | | |<-----------| | 5216 | | |Sub Phy Resp| | 5217 | | |Sub Eph Resp Statistics | 5218 |____________|___________|____________|________________| 5220 The initial message sent by the ISDN switch is the Setup message. The 5221 setup message has all the address information. The MGC after receiving 5222 the Setup message from the Signaling gateway generates the IAM message 5223 towards the SS7 switch through the Signaling gateway. After receiving 5224 the ACM address complete message from the SS7 switch the MGC 5225 generates Alerting message towards the ISDN switch. The MGC after 5226 receiving the ANM message generates Connect message towards the 5227 ISDN switch. The MGC now adds terminations in both the 5228 Trunking gateways. 5230 Step 1 5231 MGC to ISDNTGW 5232 MEGACO/1 [216.33.33.61]: 27000 5233 Transaction = 1234{ 5234 Context = $ { 5235 Add = Trunk1/line1 {Media { 5236 LocalControl {Mode = SendRecv}}, 5237 }, 5238 Add = $ {Media { 5239 LocalControl { 5240 Mode = Receiveonly, 5241 }, 5242 Local { 5243 v=0 5244 c=IN IP4 $ 5245 m=audio $ RTP/AVP 4 5247 } 5248 } 5249 } 5250 } 5251 } 5252 } 5254 The ISDN Trunking gateway after receiving the Add command responds 5255 with a contextID in this example 1. The ephemeral termination is 5256 created and added to the same context as the physical termination. 5257 The ephemeral termination added in this example is EPHA. The local 5258 parameters are specified in the response. The IP address chosen for 5259 the media transport in this example is 209.110.59.33, and the 5260 port number specified 30000. 5262 Step 2 5263 ISDNTGW to MGC: 5264 MEGACO/1 [207.176.47.89]: 25000 5265 Reply = 1234{ 5266 Context = 1 { 5267 Add = Trunk1/line1, 5268 Add = EphA{ 5269 Media { 5270 Local { 5271 v=0 5272 c=IN IP4 209.110.59.33 5273 m=audio 30000 RTP/AVP 4 5274 } 5275 } ; RTP profile for G723 is 4 5276 } 5277 } 5278 } 5279 The MGC after receiving the response generates similar transaction 5280 with two ADD commands to the other SS7TGW. The local SDP information 5281 specified in by the ISDNTGW is used to as remote SDP information for 5282 the other TGW. The MGC conveys this information in the Add command. 5284 Step 3 5285 MGC to SS7TGW 5286 MEGACO/1 [216.33.33.61]: 27000 5287 Transaction = 1235{ 5288 Context = $ { 5289 Add = Trunk2/$ {Media { 5290 LocalControl {Mode = SendRecv}}, 5291 }, 5292 Add = $ {Media { 5293 LocalControl { 5294 Mode = Receiveonly, 5295 }, 5296 Local { 5297 v=0 5298 c=IN IP4 $ 5299 m=audio $ RTP/AVP 4 5301 } 5302 Remote{ 5303 v=0 5304 c=IN IP4 209.110.59.33 5305 m=audio 30000 RTP/AVP 4 5306 } 5307 } ; RTP profile for G723 is 4 5308 } 5309 } 5310 } 5312 The Trunking gateway creates a context with ContextId 2. It adds the 5313 physical termination Trunk2/line1 in that context. The ephemeral 5314 termination EPHB is created with the specified SDP information. The 5315 response from the MG specifies the local SDP information. 5317 Step 4 5318 RGW to MGC: 5319 MEGACO/1 [207.176.47.89]: 26000 5320 Reply = 1235{ 5321 Context = 2 { 5322 Add = Trunk2/line1, 5323 Add = EphB{ 5324 Media { 5325 Local { 5326 v=0 5327 c=IN IP4 209.110.59.33 5328 m=audio 30000 RTP/AVP 4 5329 } 5330 } ; RTP profile for G723 is 4 5331 } 5332 } 5333 } 5335 The MGC after receiving the response generates a modify command to the 5336 ISDNTGW to inform the local SDP information of TGW as the remote SDP 5337 for the ISDNTGW. 5339 Step 5 5340 MGC to TGW 5341 MEGACO/1 [216.33.33.61]: 27000 5342 Transaction = 1236{ 5343 Context = 1 { 5344 Modify = EphA 5345 {Media { 5346 LocalControl { 5347 Mode = SendRecv, 5348 }, 5349 Remote{ 5350 v=0 5351 c=IN IP4 209.110.59.33 5352 m=audio 30000 RTP/AVP 4 5353 } 5354 } 5355 } 5356 } 5357 } 5358 } 5360 The ISDN Trunking gateway responds to the Modify command. 5362 Step 6 5363 ISDNTGW to MGC: 5364 MEGACO/1 [207.176.47.89]: 26000 5365 Reply = 1236{ 5366 Context = 1 { 5367 Modify = EphA 5368 } 5369 } 5370 The RTP flow is established. The call can be terminated either from 5371 the ISDN user or from the user connected to SS7 domain. In this 5372 example we assume that the ISDN user terminates the call. The ISDN 5373 switch generates Disconnect message towards the MGC through 5374 Signaling gateway. The MGC generates Release message towards the 5375 SS7 switch. The MGC also generates messages to subtract termination 5376 from contexts in both the Trunking gateways. 5378 Step 7 5379 MGC to ISDNTGW: 5380 MEGACO/1 [216.33.33.61]: 27000 5381 Transaction = 1237{ 5382 Context = 1 { 5383 Subtract = Trunk1/line1{Audit{ }}, 5384 Subtract = EphA {Audit{Statistics}} 5385 } 5387 } 5388 The ISDNTGW responds to the subtract commands generated by MGC. 5390 Step 8 5391 ISDNTGW to MGC: 5392 MEGACO/1 [209.110.59.34]:25000 5393 Reply = 1237{ 5394 Context = 1 { 5395 Subtract = Trunk1/line1 5396 Subtract = EphA { 5397 Statistics { 5398 rtp/ps=987, ; packets sent 5399 nt/os=65432, ; octets sent 5400 rtp/pr=1234, ; packets received 5401 nt/or=56789, ; octets received 5402 rtp/pl=10, ; % packets lost 5403 rtp/jit=30, 5404 rtp/delay=30 ; average latency 5405 } 5406 } 5407 } 5408 } 5410 The MGC generates similar transaction with two commands towards the 5411 TGW that terminates SS7 media trunks. 5413 Step 9 5414 MGC to TGW: 5415 MEGACO/1 [216.33.33.61]: 27000 5416 Transaction = 1238 5417 Context = 2 { 5418 Subtract = Trunk2/line1{Audit{ }}, 5419 Subtract = EphB {Audit{Statistics}} 5420 } 5421 } 5422 The SS7TGW responds to the subtract commands generated by MGC. 5424 Step 10 5425 TGW to MGC: 5426 MEGACO/1 [209.110.59.34]:26000 5427 Reply = 1238 5428 Context = 2 { 5429 Subtract = Trunk2/line1 5430 Subtract = EphB { 5431 Statistics { 5432 rtp/ps=987, ; packets sent 5433 nt/os=65432, ; octets sent 5434 rtp/pr=1234, ; packets received 5435 nt/or=56789, ; octets received 5436 rtp/pl=10, ; % packets lost 5437 rtp/jit=30, 5438 rtp/delay=30 ; average latency 5439 } 5440 } 5441 } 5442 } 5444 2.12 Continuity test from TGW 5445 In this section we will illustrate the usage of Megaco command for 5446 performing continuity tests. The basic continuity package as defined 5447 in the protocol is considered. The procedures specified in the package 5448 are illustrated. There are two cases in the continuity test. One in 5449 which the MGC generates Megaco commands towards MG to initiate an 5450 continuity test and the second one in which the command from MGC 5451 enables the gateway to return any continuity test originated from 5452 switched circuit network. 5454 Case (a) 5456 __________________________________________________________________ 5457 | 5458 MG | MGC 5459 _______________________________|___________________________________ 5460 | | 5461 |<----------------------------------| 5462 | Modify TermA SD:ct/ct ED:ct/cmp state=test 5463 |---------------------------------->| 5464 | Modify TermA Resp | 5465 <------------| | 5466 Continuity Signal | 5467 | | 5468 ------------>| | 5469 Continuity Signal Resp | 5470 |---------------------------------->| 5471 | Notify TermA OE:ct/cmp {resp=success} 5472 |<----------------------------------| 5473 | Notify TermA Resp | 5474 _____________|___________________________________|__________________ 5476 The case of originating Continuity test by the Trunking gateway is 5477 considered in this section. The MGC intends to check the continuity 5478 of a specified circuit group line1 of the trunk Trunk1 in the Trunking 5479 gateway. The MGC generates a modify command with the termination 5480 state set to "test". The event descriptor specifies the "cmp" 5481 completion event of the continuity package. The Signal descriptor 5482 lists the "ct" continuity test signal. 5484 Step 1 5485 MGC to TGW: 5486 MEGACO/1 [216.33.33.61]: 27000 5487 Transaction = 1234 { 5488 Context = '-' { 5489 Modify = Trunk1/line1 {Media { 5490 TerminationState {ServiceState = test}} 5491 Signals = { ct/ct } 5492 Events = 1111 { ct/cmp } 5493 } 5494 } 5495 } 5496 The TGW after receiving the Modify command for termination Trunk1/line1 5497 in Null context, updates the termination state. The event descriptor 5498 is updated in the Trunking gateway. The signal "ct" is applied on the 5499 specified termination. The Trunking gateway now states for detecting 5500 any tones/signals on the line on which the continuity test signal was 5501 applied. The response for the message generated by MGC is sent back. 5503 Step 2 5504 TGW to MGC: 5505 MEGACO/1 [207.176.47.89]: 26000 5506 Reply = 1234 { 5507 Context = '-' { 5508 Modify = Trunk1/line1 5509 } 5510 } 5512 The Trunking gateway detects for any return tone/signal. The frequency 5513 of the tone is assumed to be provisioned at the TGW. As soon as the 5514 response is received from the other side of the trunk the Trunking 5515 gateway reports the same to the MGC in the form of event detection. 5516 The event "cmp" in the event descriptor is used to notify the 5517 observed activity on the termination. The parameter value for the 5518 response parameter indicates the result of the continuity test 5519 performed. 5521 Step 3 5522 TGW to MGC: 5523 MEGACO/1 [207.176.47.89]: 26000 5524 Transaction = 2000 { 5525 Context = '-' { 5526 Notify = Trunk1/line1 {ObservedEvents =1111 { 5527 20010202T10000000: ct/cmp { res=success}} 5528 } 5529 } 5530 The MGC after receiving the Notify message responds to the MGC with 5531 the response. 5533 Step 4 5534 MGC to TGW: 5535 MEGACO/1 [216.33.33.61]: 27000 5536 Reply = 2000 { 5537 Context = - {Notify = Trunk1/line1} 5539 } 5541 Case (b) 5542 In the earlier continuity test scenario we saw the Megaco messages 5543 exchanged between MG and MGC when the MGC initiated the continuity 5544 test. In some scenarios the MG should respond to the continuity test 5545 originated from the PSTN switches. In this section we will consider 5546 such a scenario. 5548 __________________________________________________________________ 5549 | 5550 MG | MGC 5551 _______________________________|___________________________________ 5552 | | 5553 |<----------------------------------| 5554 | Modify TermA SD:ct/rsp | 5555 |---------------------------------->| 5556 | Modify TermA Resp | 5557 ------------>| | 5558 Continuity Signal | 5559 | | 5560 <------------| | 5561 Continuity Signal Resp | 5562 _____________|___________________________________|__________________ 5564 The continuity package signal "rsp" is used for this purpose. This 5565 signal duration and frequency are provisioned at the TGW. When the 5566 MGC is intimated form the PSTN switch for responding the continuity 5567 test, the MGC generates a Modify command with the "rsp" signal in the 5568 signal descriptor. The termination state is set to "test". 5570 Step 1 5571 MGC to TGW: 5572 MEGACO/1 [216.33.33.61]: 27000 5573 Transaction = 1234 { 5574 Context = '-' { 5575 Modify = Trunk1/line1 {Media { 5576 TerminationState {ServiceState = test} 5577 LocalControl { mode = loopback} } 5578 Signals = { ct/rsp } 5579 } 5580 } 5581 } 5582 There can be two possible cases for responding the continuity test 5583 originated from the PSTN network. One in which the Trunking gateway 5584 generates a signal of different frequency when it receives a continuity 5585 check specific signal. The second possibility is to respond with the 5586 same signal looped back to the same switch that originated it. In 5587 this example we assume the case of Loopback. The mode of the 5588 termination is also set to loopback to facilitate this. The 5589 Trunking gateway after receiving the signal loops back the same 5590 signal. The Trunking gateway also responds with the transaction 5591 response message towards the MGC. 5593 Step 2 5594 TGW to MGC: 5595 MEGACO/1 [207.176.47.89]: 26000 5596 Reply = 1234 { 5597 Context = '-' { 5598 Modify = Trunk1/line1 5599 } 5600 } 5601 Once the test is complete the MGC is intimated about the success of 5602 failure of the continuity test through the switch that originated the 5603 continuity test. 5605 2.13 Call from residential gateway to H.323 Terminal. 5607 In This section we illustrate a call between a Residential gateway user 5608 and to an endpoint in the H.323 domain. We assume that the call is 5609 initiated from the user of the Residential gateway and after dialing 5610 the digits the MGC does necessary mapping of the number to identify 5611 that the called number belongs to the H.323 network. 5613 _________________________________________________________________________ 5614 | | | | 5615 RGW | MGC | GK | H.323EP | 5616 _______________|_________________|__________________|__________________|_ 5617 | | | | 5618 |<--------------| | | 5619 | Modify | | | 5620 ------>| | | | 5621 OffHook|-------------->| | | 5622 <------| Modify Resp | | | 5623 DialTone | | | 5624 |-------------->| | | 5625 | Notify OffHook | | 5626 |<--------------| | | 5627 | Notify Resp | | | 5628 ------>| | | | 5629 Digits |-------------->| | | 5630 | Notify Digits| | | 5631 |<--------------| | | 5632 | Notify Resp | | | 5633 | |------------------>| | 5634 | | ARQ | | 5635 | |<------------------| | 5636 | |------------------------------------>| 5637 | | Setup | 5638 | | |<----------------| 5639 | | | ARQ | 5640 | | |---------------->| 5641 | | | ACF | 5642 | |<------------------------------------| 5643 | | Alerting | 5644 <------| | | | 5645 RingBack tone | | | 5646 |<--------------| | | 5647 |Add Phy | | | 5648 |Add Eph Local Unspecified | | 5649 |-------------->| | | 5650 |Add Phy Resp | | | 5651 |Add Eph Resp Local Specified | | 5652 | |<------------------------------------| 5653 | | Connect | 5654 | |<----------------------------------->| 5655 | | TCS | 5656 | |<----------------------------------->| 5657 | | MSD | 5658 | |<----------------------------------->| 5659 | | OLC (forward Logcial ch)RGW rtp/rtcp| 5660 | |<----------------------------------->| 5661 | | OLC (Rev Logical Ch) H.323 rtp/rtcp | 5662 |<--------------| | | 5663 | Modify Eph Remote Specified | | 5664 |-------------->| | | 5665 |Modify Resp | | | 5666 |/---------------------------------------------------\| 5667 | RTP Media | 5668 |\---------------------------------------------------/| 5669 | |<----------------------------------->| 5670 | | CLC SessionId = 1 | 5671 | |<----------------------------------->| 5672 |<--------------| | | 5673 <------| Modify SD:cg/bt | | 5674 Ringbacktone |<----------------------------------->| 5675 | | CLC SessionId = 2 | 5676 |-------------->| | | 5677 | Modify Resp | | | 5678 | |<------------------------------------| 5679 | | Release Complete | 5680 | |------------------>| | 5681 | | DRQ |<----------------| 5682 |<--------------| | DRQ | 5683 |Sub Phy |<------------------|---------------->| 5684 |Sub Eph Stats | DCF | DCF | 5685 _______|_______________|___________________|_________________|_______ 5687 The MGC generates modify command for to the residential gateway to 5688 check for offhook for Termination TermA. In this message the event 5689 offhook has an embedded signal descriptor and embedded event 5690 descriptor. The embedded signal descriptor is sent for application 5691 of dial tone immediately after the detection of the offhook event 5692 and the event descriptor then will be updated with the onhook and the 5693 digit map completion event. The Digit map is also defined in the 5694 digit map descriptor. 5696 Step 1 5697 MGC to RGW: 5698 MEGACO/1 [216.33.33.61]: 27000 5699 Transaction = 1234 { 5700 Context = - { 5701 Modify = TermA { 5702 Media { 5703 LocalControl { 5704 Mode = ReceiveOnly} 5705 }, 5706 DigitMap= Dmap1 {(2XXX)} 5707 Events = 1111 {al/of Embed {signals {cg/dt}, Events=1112 { al/on}, 5708 {dd/ce {Dmap1}}} 5709 } 5710 } 5711 } 5713 The MG after receiving the MGC's message responds to it. 5715 Step 2 5716 RGW to MGC: 5717 MEGACO/1 [209.110.59.34]: 25000 5718 Reply = 1234 { 5719 Context = - {Modify = TermA} 5720 } 5722 When the user A goes offhook RGW detects the offhook event and as it 5723 is listed in the event descriptor report the event detection using 5724 Notify command. 5726 Step 3 5727 RGW to MGC: 5728 MEGACO/1 [209.110.59.34]: 25000 5729 Transaction = 2000 { 5730 Context = - { 5731 Notify = TermA {ObservedEvents =1111 { 5732 20010202T10000000:al/of}} 5733 } 5735 } 5736 The MGC responds with the Notify response. 5738 Step 4 5739 MGC to RGW: 5740 MEGACO/1 [216.33.33.61]: 27000 5741 Reply = 2000 { 5742 Context = - {Notify = TermA} 5743 } 5745 The digit map is active on the termination TermA. When the user dials 5746 the digits the they are reported to MGC through Notify command. 5748 Step 5 5749 RGW to MGC: 5750 MEGACO/1 [209.110.59.34]: 25000 5751 Transaction = 2001 { 5752 Context = - { 5753 Notify = TermA {Observed Events =1112 { 5754 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 5755 } 5756 } 5758 MGC after receiving the Notify command responds back with the Notify response. 5760 Step 6 5761 MGC to RGW: 5762 MEGACO/1 [216.33.33.61]: 27000 5763 Reply = 2001 { 5764 Context = - {Notify = TermA} 5765 } 5767 The MGC analyses the digits sent by the Residential Gateway. The 5768 routing functionality in MGC enabled and it indicates that the dialed 5769 digits belong to the user in H.323 network. The MGC acts as a H.323 5770 Terminal towards H.323 network and generates the signaling towards 5771 the destined Called party. The MGC initially generates an admission 5772 request towards the Gatekeeper. The Gatekeeper acknowledges the 5773 admission request message by generating the Admission confirmation 5774 message ACF. Assuming that the GK used directed-routed call model, 5775 the Gatekeeper provides the transport address information of the 5776 destination user. The MGC then initiates the H.225 signaling by 5777 generating the SETUP message towards the H.323 endpoint. The H.323 5778 Endpoint after receiving the Setup message from the MGC initiates the 5779 Admission request towards the Gatekeeper. The H.323 Endpoint after 5780 receiving the Admission confirmation message from the Gatekeeper 5781 generates the Alerting message towards the MGC. The MGC after 5782 receiving the ALERT message from the H.323 Endpoint generates a 5783 Add command to the Residential gateway to apply ring back tone to the 5784 given termination. In the Add command the MGC requests the creation 5785 of ephemeral termination and under specifies the Local SDP 5786 information. The mode of the termination is set to receive only. 5788 Step 7 5789 MGC to RGW: 5790 MEGACO/1 [216.33.33.61]: 27000 5791 Transaction = 1235 { 5792 Context = $ { 5793 Add = TermA { 5794 Signals { cg/ rt } 5795 Media { 5796 { 5797 LocalControl { 5798 Mode = sendrecv, 5799 }, 5800 } 5801 Add = $ { 5802 Media { 5803 { 5804 LocalControl { 5805 Mode = sendrecv, 5806 }, 5807 Local { 5808 v=0 5809 c=IN IP4 $ 5810 m=audio $ RTP/AVP 4 5811 } 5812 } 5813 } 5814 } 5815 } 5817 MG after creating the context adds the physical termination TermA. In 5818 this case MG creates a context with ContextId 1. The ephemeral 5819 termination EphA is created and added to the context 1. The MG 5820 reserves resources for the local SDP information. In this case the 5821 IP address allocated is 209.110.59.33 and the port number used is 5822 30000. The MG responds to the Add command with this information in 5823 the response to MGC. 5825 Step 8 5826 RGW to MGC: 5827 MEGACO/1 [209.110.59.34]: 25000 5828 Reply = 1235 { 5829 Context = 1 { 5830 Add = TermA, 5831 Add=EphA{ 5832 Media { 5833 Local { 5834 v=0 5835 c=IN IP4 209.110.59.33 5836 m=audio 30000 RTP/AVP 4 5837 a=recvonly 5838 } ; RTP profile for G.723 is 4 5839 } 5840 } 5841 } 5842 } 5843 } 5844 The H.323 Endpoint generates the CONNECT message after the called 5845 party goes offhook. We assume that the H.245 information is passed in 5846 Connect message. The Terminal Capability set and the Master slave 5847 determination occurs between the MGC and the H.323 Endpoint. The 5848 Open Logical channel messages (OLCs) indicate the session and media 5849 related parameters. This enables the MGC to inform and receive the 5850 SDP information of both the users. By the end of this OLCs the MGC 5851 is aware of the SDP information of the H.323 Endpoint. The MGC now 5852 generates Modify message towards the MG, with the Remote SDP 5853 information for the ephemeral termination EphA. 5855 Step 9: 5856 MGC to RGW: 5857 MEGACO/1 [216.33.33.61]: 27000 5858 Transaction = 1236 { 5859 Context = 1 { 5860 Modify = TermA { 5861 Signals { } ; to turn off ringback tone 5862 Events = 1235 {al/on}, 5863 Media { 5864 LocalControl { 5865 Mode = SendRecv, 5866 } 5867 } 5868 } 5869 Modify = EphA{ 5870 Media { 5871 LocalControl { 5872 Mode = SendRecv, 5873 } 5874 Remote { 5875 v=0 5876 c=IN IP4 207.176.47.90 5877 m=audio 40000 RTP/AVP 4 5878 } ; RTP profile for G.723 is 4 5879 } 5880 } 5881 } 5883 The RGW responds to the request from MGC. 5885 Step 10 5886 RGW to MGC: 5888 MEGACO/1 [207.176.47.89]: 26000 5889 Reply = 1236 { 5890 Context = 1 {Modify = TermA , Modify = EphA} 5891 } 5893 Now RTP media flow takes place. In the example we assume that the 5894 H.323 goes onhook to terminate the call. The MGC initiates the tearing 5895 down of the Call by closing the logical channels that were earlier 5896 created for exchanging the H.245 information. The MGC after receiving 5897 the DISCONNECT message generates a Modify message towards the 5898 Residential gateway user for applying the busy tone and for making 5899 the mode of the two terminations to receive only. 5901 Step 11 5902 MGC to RGW: 5903 MEGACO/1 [216.33.33.61]: 27000 5904 Transaction = 1240 { 5905 Context = 1 { 5906 Modify = TermA { 5907 Signals {cg/bt} 5908 Media { 5909 LocalControl { 5910 Mode = recvonly} 5911 } 5912 }, 5913 Modify = EphA { 5914 Media { 5915 LocalControl { 5916 Mode = recvonly} 5917 } 5918 } 5919 } 5920 } 5921 } 5923 The RGW responds to this modify request. 5925 Step 12 5926 MG2 to MGC: 5927 MEGACO/1 [207.176.47.89]: 26000 5928 Reply = 1240 { 5929 Context = 1 { 5930 Modify= TermA, Modify = EphA} 5931 } 5933 Step 13: 5934 RGW1 to MGC: 5935 MEGACO/1 [209.110.59.34]:25000 5936 Transaction = 2002 { 5937 Context = 1 { 5938 Notify = TermA {ObservedEvents =1235{ 5939 20010202T10030000:al/on} 5940 } 5941 } 5942 The MGC responds to the MG1s Notify message. 5944 Step 14 5945 MGC to RGW1: 5946 MEGACO/1 [216.33.33.61]:27000 5947 Reply = 2002 { 5948 Context = 1 { 5949 Notify = TermA 5950 } 5951 } 5953 The MGC after the Release Complete message waits for the Notify 5954 command with onhook event from UserA and after receiving subtracts 5955 the physical and ephemeral termination at the Residential gateway. 5956 Thus enabling the user to participate in further calls. 5958 Step 15 5959 MGC to RGW 5960 MEGACO/1 [216.33.33.61]: 27000 5961 Transaction = 1238 { 5962 Context = 1 { 5963 Subtract = TermA {Audit{ }}, 5964 Subtract = EphA {Audit{Statistics}} 5965 } 5966 } 5967 The MG subtracts the two terminations from the context. The context 5968 itself is deleted with subtract of the last termination from it. The 5969 RGW responds to this transaction from MGC with statistics on 5970 ephemeral termination. 5972 Step 16 5973 RGW to MGC: 5974 MEGACO/1 [209.110.59.34]:25000 5975 Reply = 1238 { 5976 Context = 1 { 5977 Subtract = TermA 5978 Subtract = EphA { 5979 Statistics { 5980 rtp/ps=1234, ; packets sent 5981 nt/os=56789, ; octets sent 5982 rtp/pr=987, ; packets received 5983 nt/or=65432, ; octets received 5984 rtp/pl=10, ; % packets lost 5985 rtp/jit=30, 5986 rtp/delay=30 ; average latency 5987 } 5988 } 5989 } 5991 } 5993 2.14 Call from residential gateway to SIP user. 5994 This section illustrates a call between a user connected to Residential 5995 gateway and another SIP user. It is assumed that the MGC acts as a SIP 5996 server agent. The MGC generates SIP messages towards the SIP user 5997 agent/called party. When the MGC receives the digits dialed by the 5998 user even though not explicitly shown in the figure, it communicates 5999 with a routing database and finds the SIP user agent's URL. 6001 ___________________________________________________________________ 6002 | | 6003 RGW | MGC | SIP User 6004 __________________|_________________________|______________________ 6005 | | | 6006 |<--------------------| | 6007 |Modify TermA {ED=al/of{SD:cg/dt,ED:al/on,dd/ce{dmap}}} 6008 |-------------------->| | 6009 ----->| | | 6010 OffHook | | 6011 |-------------------->| | 6012 | Notify OffHook | | 6013 |<--------------------| | 6014 | Notify Resp | | 6015 ------>| | | 6016 Digits| | | 6017 |-------------------->| | 6018 | Notify Digits | | 6019 |<--------------------| | 6020 | Notify Resp | | 6021 | |------------------------>| 6022 | | INVITE | 6023 | |<------------------------| 6024 | | 180 (RING) | 6025 |<--------------------| | 6026 |Add TermA SD:cg/rt | | 6027 |Add Eph Local Unspecified | 6028 | Remote SPecified | 6029 |-------------------->| | 6030 | Add Phy Resp | | 6031 | Add Eph Local Specified | 6032 <------| | | 6033 RingBack Tone | | 6034 | |------------------------>| 6035 | | ACK (SDP Specified) | 6036 |/---------------------------------------------\| 6037 | RTP Media | 6038 |\---------------------------------------------/| 6039 ------>| | | 6040 OnHook |-------------------->| | 6041 | Notify OnHook | | 6042 |<--------------------|------------------------>| 6043 | Notify Resp | BYE | 6044 |<--------------------| | 6045 | Sub TermA | | 6046 | Sub EphA |<------------------------| 6047 |-------------------->| 200 OK | 6048 | Sub Phy Resp | | 6049 | Sub Eph Resp Statistics | 6050 ______|_____________________|_________________________|________ 6052 The MGC generates modify command for to the residential gateway to 6053 check for offhook for Termination TermA. In this message the event 6054 offhook has an embedded signal descriptor and embedded event 6055 descriptor. The embedded signal descriptor is sent for application of 6056 dial tone immediately after the detection of the offhook event and the 6057 event descriptor then will be updated with the onhook and the digit 6058 map completion event. The Digit map is also defined in the digit map 6059 descriptor. 6061 Step 1 6062 MGC to RGW: 6063 MEGACO/1 [216.33.33.61]:27000 6064 Transaction = 1234 { 6065 Context = - { 6066 Modify = TermA { 6067 Media { 6068 LocalControl { 6069 Mode = Receiveonly} 6070 }, 6071 DigitMap= Dmap1{(2XXX)} 6072 Events = 1111 {al/of Embed {signals {cg/dt}, Events=1112 { al/on}, 6073 {dd/ce {Dmap1}}} 6074 } 6075 } 6076 } 6078 The MG after receiving the MGC's message responds to it. 6080 Step 2 6081 RGW to MGC: 6082 MEGACO/1 [209.110.59.34]: 25000 6083 Reply = 1234 { 6084 Context = - {Modify = TermA} 6085 } 6087 When the user A goes offhook RGW detects the offhook event and as it 6088 is listed in the event descriptor report the event detection using 6089 Notify command. 6091 Step 3 6092 RGW to MGC: 6093 MEGACO/1 [209.110.59.34]:25000 6094 Transaction = 2000 { 6095 Context = - { 6096 Notify = TermA {ObservedEvents =1111 { 6097 20010202T10000000:al/of}} 6098 } 6099 } 6100 the MGC responds with the Notify response. 6102 Step 4 6103 MGC to RGW: 6104 MEGACO/1 [216.33.33.61]: 27000 6105 Reply = 2000 { 6106 Context = - {Notify = TermA} 6107 } 6109 The digit map is active on the termination TermA. When the user dials 6110 the digits the they are reported to MGC through Notify command. 6112 Step 5 6113 RGW to MGC: 6114 MEGACO/1 [209.110.59.34]: 25000 6115 Transaction = 2001 { 6116 Context = - { 6117 Notify = TermA {ObservedEvents =1112 { 6118 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 6119 } 6120 } 6122 MGC after receiving the Notify command responds back with the Notify 6123 response. 6125 Step 6 6126 MGC to RGW: 6127 MEGACO/1 [216.33.33.61]: 27000 6128 Reply = 2001 { 6129 Context = - {Notify = TermA} 6130 } 6132 The MGC analyses the digits sent by the Residential Gateway. The routing 6133 functionality in MGC enabled and it indicates that the dialed digits 6134 belong to the SIP user. The MGC acts as a SIP User agent, and 6135 generates a INVITE message towards the SIP user. 6137 INVITE sip:UserB@there.com SIP/2.0 6138 Via: SIP/2.0/UDP here.com:5060 6139 From: Bob 6140 To: Julien 6141 Call-ID: 12345601@here.com 6142 CSeq: 1 INVITE 6143 Contact: Bob 6144 Content-Type: application/sdp 6145 Content-Length: 0 6147 The SDP information is not provided in this INVITE message. The MGC 6148 receives the 180- OK message from the SIP user to indicate that 6149 ringing is done towards that end. 6151 SIP/2.0 180 Ringing 6152 Via: SIP/2.0/UDP here.com:5060 6153 From: Julien 6154 To: Bob;tag=8321234356 6155 Call-ID: 12345601@here.com 6156 CSeq: 1 INVITE 6157 Content-Length: 0 6159 The MGC generates a Modify message to the Residential gateway to apply 6160 ringback tone to the given termination. 6162 Step 7 6163 MGC to RGW: 6164 MEGACO/1 [216.33.33.61]: 27000 6165 Transaction = 1235 { 6166 Context = $ { 6167 Modify = TermA { 6168 Signals { cg/rt } 6169 } 6170 } 6171 } 6172 The MG after receiving the Modify message applies ringback tone to the 6173 user and generates Modify response. 6175 Step 8 6176 RGW to MGC: 6177 MEGACO/1 [209.110.59.34]: 25000 6178 Reply = 1235 { 6179 Context = - {Modify = TermA} 6180 } 6182 The MGC meanwhile receives the 200 OK message from the SIP user to 6183 indicate its SDP information. 6185 SIP/2.0 200 OK 6186 Via: SIP/2.0/UDP here.com:5060 6187 From: Julien 6188 To: Bob;tag=8321234356 6189 Call-ID: 12345601@here.com 6190 CSeq: 1 INVITE 6191 Contact: Julien 6192 Content-Type: application/sdp 6193 Content-Length: 147 6195 v=0 6196 o=UserB 2890844527 2890844527 IN IP4 there.com 6197 s=Session SDP 6198 c=IN IP4 207.176.47.90 6199 t=0 0 6200 m=audio 35000 RTP/AVP 4 6201 a=rtpmap:0 PCMU/8000 6203 The MGC now generates the Add command for adding the physical 6204 termination TermA and to create an ephemeral termination EphA. The 6205 local SDP information for the ephemeral termination EphA is under 6206 specified to enable the RGW to allocate the necessary values by 6207 itself. The Remote SDP information is also sent. The mode of the two 6208 terminations is set to send receive. 6210 Step 9 6211 MGC to RGW: 6212 MEGACO/1 [216.33.33.61]: 27000 6213 Transaction = 1236 { 6214 Context = $ { 6215 Add = TermA { 6216 Media { 6217 { 6218 LocalControl { 6219 Mode = sendrecv, 6220 }, 6221 } 6222 Add = $ { 6223 Media { 6224 { 6225 LocalControl { 6226 Mode = sendrecv, 6227 }, 6228 Local { 6229 v=0 6230 c=IN IP4 $ 6231 m=audio $ RTP/AVP 4 6232 } 6233 Remote{ 6234 v=0 6235 c=IN IP4 207.176.47.90 6236 m=audio 35000 RTP/AVP 4 6237 } 6238 } 6239 } 6240 } 6242 } 6244 MG after creating the context adds the physical termination TermA. In 6245 this case MG creates a context with ContextId 1. The ephemeral 6246 termination EphA is created and added to the context 1. The MG 6247 reserves resources for the local SDP information. In this case the 6248 IP address allocated is 209.110.59.33 and the port number used is 6249 30000. The MG responds to the Add command with this information in 6250 the response to MGC. 6252 Step 10 6253 RGW to MGC: 6254 MEGACO/1 [209.110.59.34]: 25000 6255 Reply = 1236 { 6256 Context = 1 { 6257 Add = TermA, 6258 Add=EphA{ 6259 Media { 6260 Local { 6261 v=0 6262 c=IN IP4 209.110.59.33 6263 m=audio 30000 RTP/AVP 4 6264 a=sendrecv 6265 } ; RTP profile for G.723 is 4 6266 } 6267 } 6268 } 6269 } 6270 } 6272 In the ACK message of SIP, the local SDP information is indicated 6273 towards the remote SIP user. 6275 ACK sip:UserB@there.com SIP/2.0 6276 Via: SIP/2.0/UDP here.com:5060 6277 From: Bob 6278 To: Julien;tag=8321234356 6279 Call-ID: 12345601@here.com 6280 CSeq: 1 ACK 6281 Content-Length: 147 6283 v=0 6284 o=UserA 2890844526 2890844526 IN IP4 here.com 6285 s=Session SDP 6286 c=IN IP4 209.110.59.33 6287 m=audio 30000 RTP/AVP 4 6288 a=rtpmap:0 PCMU/8000 6290 Now RTP media flow takes place. In the example we assume that the 6291 UserA goes onhook to terminate the call. The RGW after detecting the 6292 event reports the same to MGC in the Notify command. 6294 Step 11: 6295 RGW to MGC: 6296 MEGACO/1 [209.110.59.34]:25000 6297 Transaction = 2002 { 6298 Context = 1 { 6299 Notify = TermA {ObservedEvents =1112 { 6300 20010202T10030000:al/on} 6301 } 6302 } 6303 } 6304 The MGC responds to the MG1s Notify message. 6306 Step 12 6307 MGC to MG1: 6308 MEGACO/1 [216.33.33.61]:27000 6309 Reply = 2002 { 6310 Context = 1 { 6311 Notify = TermA 6312 } 6313 } 6314 The MGC now generates subtract commands to the RGW. The BYE message is 6315 generated by the MGC towards the other SIP user. 6317 BYE sip:UserB@here.com SIP/2.0 6318 Via: SIP/2.0/UDP there.com:5060 6319 From: Bob;tag=8321234356 6320 To: Julien 6321 Call-ID: 12345601@here.com 6322 CSeq: 1 BYE 6323 Content-Length: 0 6325 The MGC after sending the BYE message recives the 200 OK message from 6326 the remote SIP user. 6328 SIP/2.0 200 OK 6329 Via: SIP/2.0/UDP there.com:5060 6330 From: Julien;tag=8321234356 6331 To: Bob 6332 Call-ID: 12345601@here.com 6333 CSeq: 1 BYE 6334 Content-Length: 0 6336 The two Subtract commands are clubbed in a single action. 6338 Step 13 6339 MGC to RGW 6340 MEGACO/1 [216.33.33.61]: 27000 6341 Transaction = 1238 { 6342 Context = 1 { 6343 Subtract = TermA {Audit{ }}, 6344 Subtract = EphA {Audit{Statistics}} 6345 } 6346 } 6347 The MG subtracts the two terminations from the context. The context 6348 itself is deleted with the subtract of the last termination from it. 6349 The MG1 responds to this transaction from MGC with statistics on 6350 ephemeral termination. 6352 Step 14 6353 RGW to MGC: 6354 MEGACO/1 [209.110.59.34]:25000 6355 Reply = 1238 { 6356 Context = 1 { 6357 Subtract = TermA 6358 Subtract = EphA { 6359 Statistics { 6360 rtp/ps=1234, ; packets sent 6361 nt/os=56789, ; octets sent 6362 rtp/pr=987, ; packets received 6363 nt/or=65432, ; octets received 6364 rtp/pl=10, ; % packets lost 6365 rtp/jit=30, 6366 rtp/delay=30 ; average latency 6367 } 6368 } 6369 } 6370 } 6372 3 Service Change Command Usage 6374 This section lists the few methods that illustrate the usage of MEGACO 6375 protocol defined service change methods. The scenarios takes into 6376 consideration both ROOT termination and specific terminations. The 6377 intention of the section is to provide the usage of different methods 6378 and the situations when each of the methods needs to be used. 6380 3.1 ROOT Termination. 6381 3.1.1 Registration. 6383 The MEGACO protocol defined a special termination called the ROOT 6384 termination to address the gateway as a whole. This enables easy 6385 addressing from both MG and MGC to address the gateway as a single 6386 entity. The virtual MG situations are not discussed in this version 6387 of the call flow draft. 6389 The Media Gateway once ready to receive messages from MGC registers 6390 itself using the Service change command. The termination Identifier 6391 ROOT is used for this purpose. This can be treated as the first 6392 messages sent from MG to MGC. The call flow assumes that the MGC is 6393 ready to receive the messages from the MG. 6395 _______________________________________________________________________ 6396 | 6397 Media Gateway | Media Gateway Controller 6398 ___________________________________|___________________________________ 6399 | | Port Num 2944 6400 PortNum |------------------------------------>| 6401 20000 |ServiceChange ROOT Method=Restart Sca=15000 6402 | | 6403 PortNum 20000|<------------------------------------| Port Num 2944 6404 |ServiceChange Resp ROOT sca=25000 | 6405 | | 6406 PortNum 15000|<------------------------------------| PortNum 25000 6407 | Modify *Event al/of | 6408 | | 6409 Port Num 15000|------------------------------------>| PortNum 25000 6410 | Modify Response | 6411 _____________|_____________________________________|____________________ 6413 In the following example MG generates the registration message to the 6414 default port of MGC, it also specifies the service change address to 6415 which the MGC has to send further messages. MGC also specifies the new 6416 transport address so that when MG generates any messages it generates 6417 to this address instead of the default transport address for the MGC. 6418 In the example it is to be noted that the MGC is generating the MODIFY 6419 command to the new transport address specified by MG in its 6420 registration command. 6422 The first command sent from MG (once it is ready to receive message) 6423 is the Service Change command, with ROOT termination identifier. In 6424 the example MG is generating the registration message to the default 6425 port of MGC (defined by protocol 2944 for Text message) 6427 Step 1: 6428 MG to MGC: 6429 MEGACO/1 [209.110.59.34]: 20000 6430 Transaction = 1234 { 6431 Context = - { 6432 ServiceChange = ROOT {Services { 6433 Method=Restart, 6434 ServiceChangeAddress=15000, Profile=ResGW/1, 6435 12345677T87654320} 6436 } 6437 } 6439 } 6441 The MGC responds the registration request to the same transport address 6442 used by MG to send the request. In the response MGC specifies its new 6443 transport address, that needs to be used by MG for further messages 6444 generated towards MGC.(In example 25000). 6446 Step 2: 6447 MGC to MG: 6448 MEGACO/1 [216.33.33.61]:2944 6449 Reply = 1234 { 6450 Context = - {ServiceChange = ROOT { 6451 Services {ServiceChangeAddress=25000, Profile=ResGW/1 , 6452 12345678T87654321} } } 6453 } 6455 In the example it is also shown that the MGC uses the transport address 6456 specified by MG for receiving messages. The initial MODIFY command sent 6457 to check for offhook event on all termination is sent to the new 6458 transport address specified by MG. 6460 Step 3: 6461 MGC to MG: 6462 MEGACO/1 [216.33.33.61]:25000 6463 Transaction = 9999 { 6464 Context = - { 6465 Modify = * { 6466 Events = 1234 {al/of} 6467 } 6468 } 6469 } 6471 The MG generates response to the new transport address specified by MGC 6472 in its registration response. 6474 Step 4: 6475 MG to MGC: 6476 MEGACO/1 [209.110.59.34]:15000 6477 Reply = 9999 { 6478 Context = - {Modify = A1} 6479 Context = - {Modify = A2} 6480 Context = - {Modify = A3} 6481 } 6483 3.1.2 Cold Start 6484 A MG is pre-provisioned by a management mechanism with a Primary and 6485 (optionally) an ordered list of Secondary MGC's. Upon a cold start of 6486 the MG, it will issue a ServiceChange command with a "Restart" method, 6487 on the Root Termination to its primary MGC. If the MGC accepts the 6488 MG, it will send a Transaction Accept, with the ServiceChangeMgcId set 6489 to it. If the MG receives an ServiceChangeMgcId not equal to the MGC 6490 it contacted, it sends a ServiceChange to the MGC specified in the 6491 ServiceChangeMgcId. In this example the MG generate a registration 6492 command towards the secondary MGC. The secondary MGC responds with 6493 the service change address to enable MG to send further messages to 6494 that specified port. 6496 ____________________________________________________________________ 6497 | | 6498 Media Gateway | Primary MGC | Secondary MGC 6499 ______________________|_________________________|___________________ 6500 | | | 6501 |----------------------->| | 6502 | ServiceChange ROOT | | 6503 | Method = Restart | | 6504 |<-----------------------| | 6505 | ServiceChange Resp ROOT| | 6506 | ServiceChangeMGCId=209.110.59.33:25000 | 6507 |---------------------------------------------->| 6508 | ServiceChange ROOT Method=Restart | 6509 |<----------------------------------------------| 6510 | ServiceChange ROOT Resp | 6511 __________|________________________|______________________|_________ 6513 The first command sent from MG (once it is ready to receive message) 6514 is the Service Change command, with ROOT termination identifier. In 6515 the example MG is generating the registration message to the Primary 6516 MGC. 6518 Step 1: 6519 MG to MGC: 6520 MEGACO/1 [209.110.59.34]: 20000 6521 Transaction = 1234 { 6522 Context = - { 6523 ServiceChange = ROOT {Services { 6524 Method=Restart, 6525 } 6526 } 6527 } 6528 } 6530 The MGC responds the registration request by specifying a new transport 6531 address of the secondary MGC that needs to be used by MG for generating 6532 another registration command towards secondary MGC. 6534 Step 2: 6535 MGC to MG: 6536 MEGACO/1 [216.33.33.61]:25000 6537 Reply = 1234 { 6538 Context = - {ServiceChange = ROOT { 6539 Services {mgcid=209.110.59.33:25000, Profile=ResGW/1 , 6540 12345678T87654321} } } 6541 } 6543 MG generates the Service Change command to the MGC specified by the 6544 primary MG. 6546 Step 3: 6547 MG to MGC: 6549 MEGACO/1 [209.110.59.34]: 25000 6550 Transaction = 4321 { 6551 Context = - { 6552 ServiceChange = ROOT {Services { 6553 Method=Restart, Reason="Cold Boot", 6554 Profile=ResGW/1, 12345677T87654320} 6555 } 6556 } 6557 } 6559 The MGC after receiving the registration request from the MG responds 6560 with the Service Change reply. 6562 Step 4: 6563 MGC to MG: 6565 MEGACO/1 [216.33.33.62]: 27000 6566 Transaction = 4321 { 6567 Context = - { 6568 ServiceChange = ROOT {Services { 6569 Profile=ResGW/1, 12345677T87654320} 6570 } 6571 } 6572 } 6574 3.1.3 Handoff 6576 The Handoff method can be used both by MG and MGC. In the scenario 6577 below MGC uses this method to indicate that it is going out of service 6578 and the MGC specified in the service change need to be contacted. The 6579 MG subsequently generates the handoff message to the MGC specified in 6580 the Service change mgId in the message generated by the controlling MGC. 6582 ____________________________________________________________________ 6583 | | 6584 Media Gateway | MGC1 | MGC2 6585 ______________________|_________________________|___________________ 6586 | | | 6587 |<-----------------------| | 6588 | ServiceChange ROOT | | 6589 | Method = Handoff | | 6590 | mgcidtotry=199.164.0.197:45678 | 6591 |<-----------------------| | 6592 | ServiceChange Resp ROOT| | 6593 | | | 6594 |---------------------------------------------->| 6595 | ServiceChange ROOT Method=Handoff | 6596 | Reason="MGC directed Change" | 6597 |<----------------------------------------------| 6598 | ServiceChange ROOT Resp | 6599 __________|________________________|______________________|_________ 6601 The MGC generates the ServiceChange command with Handoff as the method. 6602 It also specifies the MGC that needs to be tried by the MG. 6604 Step 1: 6605 MGC to MG: 6607 MEGACO/1 [209.110.59.34]: 20000 6608 Transaction = 1234 { 6609 Context = - { 6610 ServiceChange = ROOT {Services { 6611 Method=Handoff, 6612 MgcIdToTry=199.164.0.197:45678, Profile=ResGW/1, 12345677T87654320} 6613 } 6614 } 6615 } 6617 After receiving the command from MGC, the MG tries for the MG that is 6618 specified in the message. It first responds to the service Change 6619 command generated by the controlling MGC. 6621 Step 2: 6622 MG to MGC: 6624 MEGACO/1 [216.33.33.61]: 25000 6625 Reply = 1234 { 6626 Context = - { 6627 ServiceChange = ROOT 6628 } 6629 } 6631 MG generates the Service Change command to the MGC specified by the 6632 primary MG. 6634 Step 3: 6635 MG to MGC: 6637 MEGACO/1 [209.11.59.34]: 25000 6638 Transaction = 4321 { 6639 Context = - { 6640 ServiceChange = ROOT {Services { 6641 Method=Handoff, Reason="MGC Directed Change", 6642 Profile=ResGW/1, 12345677T87654320} 6643 } 6644 } 6645 } 6647 The MGC after receiving the Handoff request from the MG responds with 6648 the Service Change reply. 6650 Step 4: 6651 MGC to MG: 6653 MEGACO/1 [216.33.33.62]: 27000 6654 Reply = 4321 { 6655 Context = - { 6656 ServiceChange = ROOT {Services { 6657 Profile=ResGW/1, 12345677T87654320} 6658 } 6659 } 6660 } 6662 3.1.4 Disconnection 6663 The MG issues the disconnection method of Service Change when it lost 6664 the communication with MGC and later regains it. The MGC normally 6665 generates an Audit message to assess the state of the terminations 6666 before and after the disconnection. The Audit command enables MGC to 6667 synchronize its state with the MG's state. 6669 _______________________________________________________________________ 6670 | 6671 Media Gateway | Media Gateway Controller 6672 ___________________________________|___________________________________ 6673 | : | 6674 | : | 6675 | : | 6676 | MG lost communication with MGC | 6677 | | 6678 |------------------------------------>| 6679 |ServiceChange ROOT Method=Disconnection 6680 | Reason="loss of lower layer Connectivity" 6681 | | 6682 |<------------------------------------| 6683 | ServiceChange Resp ROOT | 6684 | | 6685 |<------------------------------------| 6686 | Audit * ED,SD,MD | 6687 | | 6688 |------------------------------------>| 6689 | Audit EphA Response ED,SD,MD | 6690 _____________|_____________________________________|____________________ 6692 The MG generates ServiceChange command towards the MGC with 6693 method = disconnection on the ROOT termination and with reason 6694 = "Loss of lower layer connectivity". 6695 Step 1: 6696 MG to MGC: 6697 MEGACO/1 [209.110.59.34]: 20000 6698 Transaction = 1234 { 6699 Context = - { 6700 ServiceChange = ROOT {Services { 6701 Method=Disconnection, 6702 Reason=" Loss of lower layer connectivity" 6703 } 6704 } 6705 } 6706 } 6708 The MGC responds the disconnection message by responding with Service 6709 Change response. 6711 Step 2: 6712 MGC to MG: 6713 MEGACO/1 [216.33.33.61]:25000 6714 Reply = 1234 { 6715 Context = - {ServiceChange = ROOT { 6716 } } 6717 } 6719 The MGC after receiving the disconnection message audits the 6720 terminations that are present in the Media Gateway. The Audit response 6721 enables MGC to assess the state of the termination before and after 6722 disconnection. 6724 Step 3 6725 MGC to MG: 6727 MEGACO/1 [216.33.33.61]:27000 6728 Transaction = 1235 { 6729 Context = 2 {AuditValue = *{ 6730 Audit{Media, DigitMap, Events, Signals, Packages, Statistics 6731 }} 6732 } 6733 } 6735 The MG responds with the media descriptor, packages and statistics. 6736 The Digit map, signal and events are not defined on this termination 6737 hence only tokens are sent back in the response. 6739 Step 4 6740 MG to MGC: 6741 MEGACO/1 [209.110.59.34]:25000 6742 Reply = 1235 { 6743 Context = 2 { 6744 AuditValue = EphA { 6745 Media { 6746 TerminationState { ServiceState = InService, 6747 Buffer = OFF }, 6748 Stream = 1 { 6749 LocalControl { Mode = SendReceive, 6750 nt/jit=40 }, 6751 Local { 6752 v=0 6753 c=IN IP4 209.110.59.33 6754 m=audio 30000 RTP/AVP 0 6755 a=ptime:30 6756 }, 6757 Remote { 6758 v=0 6759 c=IN IP4 207.176.47.90 6760 m=audio 40000 RTP/AVP 0 6761 a=ptime:30 6762 } } }, 6763 audit { Events, 6764 Signals, 6765 DigitMap}, 6766 Packages {nt-1, rtp-1}, 6767 Statistics { rtp/ps=1200, ; packets sent 6768 nt/os=62300, ; octets sent 6769 rtp/pr=700, ; packets received 6770 nt/or=45100, ; octets received 6771 rtp/pl=0.2, ; % packet loss 6772 rtp/jit=20, 6773 rtp/delay=40 } ; avg latency 6774 } 6775 } 6776 } 6778 3.2 Service Change for Termination 6780 The service change command can be used on terminations to take 6781 terminations from in-service to out-of-service and vice versa. This 6782 section illustrates the use of service change on termination generated 6783 both from MG and MGC. The wildcard termination identifiers scenarios 6784 are discussed in a separate section. 6786 3.2.1 MG generated Service Change 6788 3.2.1.1 Graceful OOS from MG 6790 The graceful method of service change when generated from MG is used 6791 to intimate MGC the removal of terminations from in-service. The 6792 Service Change delay is used to specify the period after which the 6793 termination will be removed from service. The service change delay 6794 can be NULL or any other 32bit-value. We will consider both the cases 6795 here. Case a deals the simple case where the delay is 350 seconds and 6796 in case b we will consider NULL value for the delay. 6798 case (a) 6800 _______________________________________________________________________ 6801 | 6802 Media Gateway | Media Gateway Controller 6803 ___________________________________|___________________________________ 6804 | | 6805 | | 6806 |------------------------------------>| 6807 |ServiceChange CtxId=2 TermA | 6808 | Method=Graceful, Delay = 350 | 6809 | | 6810 |<------------------------------------| 6811 | ServiceChange Resp | 6812 | | 6813 | : | 6814 | : | 6815 | : | 6816 After 350 Seconds TermA is taken out of service 6817 | | 6818 |<------------------------------------| 6819 | Subtract Ctxid=2 TermA | 6820 | | 6821 |------------------------------------>| 6822 | Subtract Resp Ctxid=2 TermA | 6823 _____________|_____________________________________|____________________ 6825 Step 1 6826 MG to MGC: 6827 MEGACO/1 [216.33.33.61]: 25000 6828 Transaction = 4321 { 6829 Context = 123 { 6830 ServiceChange = TermA {Services { 6831 Method=Graceful, Reason="Termination taken out of 6832 Service",Delay = 350 } 6833 } 6834 } 6836 In the first step MG generates the service change command with Graceful 6837 method. The termination "TermA" is in context 123. The delay 350 6838 indicates MGC that the termination will be moved to out-of-service 6839 after 350 seconds. 6841 Step 2 6842 MGC to MG: 6843 MEGACO/1 [207.176.47.89]: 27000 6844 Reply = 4321 { 6845 Context = 123 { 6846 ServiceChange = TermA { 6847 } 6848 } 6849 } 6851 After 350 seconds the MG removes the termination "TermA" out of service. 6852 As the responsibility of clearing the context lies with the MGC, it 6853 generates the Subtract command to remove the termination out of context. 6854 The audit descriptor in this example is shown to be present and 6855 shown empty. This indicates that the MGC is not interested in any 6856 statistics to be returned in the response from MG. 6858 Step 3 6859 MGC to MG: 6860 MEGACO/1 [207.176.47.89]: 27000 6861 Transaction = 1234 { 6862 Context = 123 { 6863 Subtract = TermA { 6864 Audit = {} 6865 } 6866 } 6867 } 6869 The MG responds with the Subtract response. By the time the subtract 6870 is received by MG, the termination is out-of-service. The Subtract 6871 command can be received even for terminations that are out-of-service. 6872 After subtracting the termination from the context, the dynamic 6873 information for the context pertained to that termination is cleared. 6875 Step 4 6876 MG to MGC: 6877 MEGACO/1 [987.654,321.1]: 25000 6878 Reply = 1234 { 6879 Context = 123 { 6880 Subtract = TermA { 6881 } 6882 } 6883 } 6885 case (b) 6887 In this subsection we consider the case where the delay specified by 6888 MG is NULL. This indicates that the termination will be taken 6889 out-of-service after the termination is subtracted from valid context. 6891 _______________________________________________________________________ 6892 | 6893 Media Gateway | Media Gateway Controller 6894 ___________________________________|___________________________________ 6895 | | 6896 | | 6897 |------------------------------------>| 6898 |ServiceChange CtxId=2 TermA | 6899 | Method=Graceful, Delay = NULL | 6900 | | 6901 |<------------------------------------| 6902 | ServiceChange Resp | 6903 | | 6904 | : | 6905 | : | 6906 | : | 6907 | | 6908 |<------------------------------------| 6909 | Subtract Ctxid=2 TermA | 6910 | | 6911 |------------------------------------>| 6912 | Subtract Resp Ctxid=2 TermA | 6913 | TermA Taken Out-of-service | 6914 _____________|_____________________________________|____________________ 6916 Step 1 6917 MG to MGC: 6918 MEGACO/1 [216.33.33.61]: 25000 6919 Transaction = 4321 { 6920 Context = 123 { 6921 ServiceChange = TermA {Services { 6922 Method=Graceful, Reason="Termination taken out of 6923 Service",Delay =0 } 6924 } 6925 } 6927 MGC after receiving gets that information that the termination will 6928 not be available after the call. MGC should inhibit using this 6929 termination further in it calls. MGC responds to the MG for the 6930 command it received. 6932 Step 2 6933 MGC to MG: 6934 MEGACO/1 [207.176.47.89]: 27000 6935 Reply = 4321 { 6936 Context = 123 { 6937 ServiceChange = TermA { 6938 } 6939 } 6940 } 6942 The MGC after the call is complete subtracts the termination from the 6943 context and avoids using this termination in further calls. Even in 6944 this example the audit descriptor is empty. 6946 Step 3 6947 MGC to MG: 6948 MEGACO/1 [207.176.47.89]: 27000 6949 Transaction = 1234 { 6950 Context = 123 { 6951 Subtract = TermA { 6952 Audit = {} 6953 } 6954 } 6955 } 6957 MG after receiving the message from MGC, responds to the message and 6958 immediately removes the termination to out-of-service. 6960 Step 4 6961 MG to MGC: 6962 MEGACO/1 [987.654,321.1]: 25000 6963 Reply = 1234 { 6964 Context = 123 { 6965 Subtract = TermA { 6966 } 6967 } 6968 } 6970 3.2.1.2 Forced OOS from MG 6971 The Forced method of service change when generated from MG is used to 6972 intimate MGC the removal of terminations from in-service. The 6973 termination may be in a valid Context or NULL context when MG has 6974 generated this message. We will consider both the cases here. 6975 Case (b) deals the simple case where the termination is in NULL context 6976 and in case (a) the termination is in Valid Context . 6978 case (a) 6980 _______________________________________________________________________ 6981 | 6982 Media Gateway | Media Gateway Controller 6983 ___________________________________|___________________________________ 6984 | | 6985 | | 6986 |------------------------------------>| 6987 |ServiceChange CtxId=123 TermA | 6988 | Method = Forced | 6989 | | 6990 |<------------------------------------| 6991 | ServiceChange Resp | 6992 | | 6993 Immediately TermA is taken out of service 6994 | | 6995 |<------------------------------------| 6996 | Subtract Ctxid=123 TermA | 6997 | | 6998 |------------------------------------>| 6999 | Subtract Resp Ctxid=123 TermA | 7000 _____________|_____________________________________|_________________ 7002 Step 1 7003 MG to MGC: 7004 MEGACO/1 [216.33.33.61]: 25000 7005 Transaction = 4321 { 7006 Context = 123 { 7007 ServiceChange = TermA {Services { 7008 Method=Forced } 7009 } 7010 } 7011 } 7013 In the first step MG generates the service change command with "Forced" 7014 Service Change method. The termination "TermA" is in context 123. 7016 Step 2 7017 MGC to MG: 7019 MEGACO/1 [207.176.47.89]: 27000 7020 Reply = 4321 { 7021 Context = 123 { 7022 ServiceChange = TermA { 7023 } 7024 } 7025 } 7027 After generating the message MG immediately removes the termination 7028 "TermA" out of service. As the responsibility of clearing the context 7029 lies with the MGC, it generates the Subtract command to remove the 7030 termination out of context. The audit descriptor in this example is 7031 shown to be present and shown empty. This indicates that the MGC is not 7032 interested in any statistics to be returned in the response from MG. 7034 Step 3 7035 MGC to MG: 7036 MEGACO/1 [207.176.47.89]: 27000 7037 Transaction = 1234 { 7038 Context = 123 { 7039 Subtract = TermA { 7040 Audit = {} 7041 } 7042 } 7043 } 7045 The MG responds with the Subtract response. When the subtract message 7046 is received by MG, the termination is out-of-service. The Subtract 7047 command can be received even for terminations that are out-of-service. 7048 After subtracting the termination from the context, the Call specific 7049 information for the context pertained to that termination is cleared. 7051 Step 4 7052 MG to MGC: 7053 MEGACO/1 [987.654,321.1]: 25000 7054 Reply = 1234 { 7055 Context = 123 { 7056 Subtract = TermA { 7057 } 7058 } 7059 } 7061 case (b) 7063 In this subsection we consider the case where the termination is in NULL 7064 context. This indicates that the termination will be immediately taken 7065 out-of-service. 7067 _______________________________________________________________________ 7068 | 7069 Media Gateway | Media Gateway Controller 7070 ___________________________________|___________________________________ 7071 | | 7072 | | 7073 |------------------------------------>| 7074 |ServiceChange CtxId=NULL TermA | 7075 | Method = Forced | 7076 | | 7077 |<------------------------------------| 7078 | ServiceChange Resp | 7079 | | 7080 Immediately TermA is taken out of service 7081 | | 7082 _____________|_____________________________________|_________________ 7084 Step 1 7085 MG to MGC: 7086 MEGACO/1 [216.33.33.61]: 25000 7087 Transaction = 4321 { 7088 Context = - { 7089 ServiceChange = TermA {Services { 7090 Method=Forced } 7091 } 7092 } 7093 } 7095 MGC after receiving gets that information should inhibit using this 7096 termination further in its calls. MGC responds to the MG for the 7097 command it received. 7099 Step 2 7100 MGC to MG: 7101 MEGACO/1 [207.176.47.89]: 27000 7102 Reply = 4321 { 7103 Context = - { 7104 ServiceChange = TermA { 7105 } 7106 } 7107 } 7109 3.2.1.3 Restart INS from MG 7110 In this we will consider the message generation from MG when 7111 terminations are brought back to in-service state after they have been 7112 removed from out-of-service. Initially when the MG comes up, it doesn't 7113 generate any in-service message for specific terminations, as the 7114 service change generated on ROOT terminations serves the same purpose. 7116 MG can generate restart for multiple terminations using the wildcard 7117 mechanism. But for simplicity we are considering the case where the 7118 termination "TermA" is brought back to service. 7120 _______________________________________________________________________ 7121 | 7122 Media Gateway | Media Gateway Controller 7123 ___________________________________|___________________________________ 7124 | | 7125 | | 7126 |------------------------------------>| 7127 |ServiceChange CtxId=NULL TermA | 7128 | Method = Restart | 7129 | | 7130 |<------------------------------------| 7131 | ServiceChange Resp | 7132 | | 7133 Immediately TermA is brought back to service 7134 | | 7135 _____________|_____________________________________|_________________ 7137 Step 1 7138 MG to MGC: 7139 MEGACO/1 [216.33.33.61]: 25000 7140 Transaction = 4321 { 7141 Context = - { 7142 ServiceChange = TermA {Services { 7143 Method=Restart} 7144 } 7145 } 7146 } 7148 MGC after receiving the message updates its Database for using this 7149 Termination for future use . MGC responds to the MG for the command 7150 it received. 7152 Step 2 7153 MGC to MG: 7154 MEGACO/1 [207.176.47.89]: 27000 7155 Reply = 4321 { 7156 Context = - { 7157 ServiceChange = TermA { 7158 } 7159 } 7160 } 7162 3.2.2 MGC generated Service Change 7163 In the earlier section we saw few scenarios where the MG generated 7164 messages to MG indicating the change of state in the termination. In 7165 this section we will look into the cases where MGC generates the 7166 service change message on terminations to remove the terminations from 7167 in-service to out-of-service and vice-versa. 7169 3.2.2.1 Forced OOS from MGC 7170 When the MGC intends to remove the termination from in-service to 7171 out-of-service, it generates a forced service change message towards MG. 7172 MG immediately removes the termination from in-service to 7173 out-of-service. If the termination is in valid context, MGC can generate 7174 subtract command and following that another message with service change 7175 command to remove it from service. 7177 _______________________________________________________________________ 7178 | 7179 Media Gateway | Media Gateway Controller 7180 ___________________________________|___________________________________ 7181 | | 7182 | | 7183 |<------------------------------------| 7184 |ServiceChange CtxId=NULL TermA | 7185 | Method = Forced | 7186 | | 7187 |------------------------------------>| 7188 | ServiceChange Resp | 7189 Immediately TermA is taken out of service 7190 | | 7191 _____________|_____________________________________|_________________ 7193 Step 1 7194 MGC to MG: 7195 MEGACO/1 [207.176.47.89]: 27000 7196 Transaction = 4321 { 7197 Context = - { 7198 ServiceChange = TermA { 7199 Method=Forced 7200 } 7201 } 7202 } 7204 MG after receiving the message from MG removes the termination 7205 immediately from service. The response is generated towards for the 7206 message received from MGC. 7208 Step 2 7209 MG to MGC: 7210 MEGACO/1 [209.11.33.62]: 25000 7211 Reply = 4321 { 7212 Context = - { 7213 ServiceChange = TermA { 7214 } 7215 } 7216 } 7218 3.2.2.2 Restart from MGC 7219 When the MGC intends to bring the termination from out-of-service to 7220 in-service, it generates a restart method of service change message 7221 towards MG. MG immediately brings the termination from out-of-service 7222 to in-service. 7224 _______________________________________________________________________ 7225 | 7226 Media Gateway | Media Gateway Controller 7227 ___________________________________|___________________________________ 7228 | | 7229 | | 7230 |<------------------------------------| 7231 |ServiceChange CtxId=NULL TermA | 7232 | Method = Restart | 7233 | | 7234 |------------------------------------>| 7235 | ServiceChange Resp | 7236 Immediately TermA is brought back to service 7237 | | 7238 _____________|_____________________________________|_________________ 7240 Step 1 7241 MGC to MG: 7242 MEGACO/1 [207.176.47.89]: 27000 7243 Transaction = 4321 { 7244 Context = - { 7245 ServiceChange = TermA { 7246 Method=Restart 7247 } 7248 } 7249 } 7251 MG after receiving the message from MG brings the termination 7252 immediately to service. The response is generated towards for the 7253 message received from MGC. 7254 Step 2 7255 MG to MGC: 7256 MEGACO/1 [209.11.33.62]: 25000 7257 Reply = 4321 { 7258 Context = - { 7259 ServiceChange = TermA { 7261 } 7262 } 7263 } 7265 4.0 Audit Command Usage 7266 The Audit command is defined in the protocol to enable MGC to get 7267 information from MG to MGC. The information received may contain the 7268 values present at the MG on a given termination or possible values that 7269 can be supported on the given termination depending upon whether the 7270 command is Audit Value or Audit Capability. The Audit command can be 7271 used on Root Termination also. The Audit command is used by MGC when 7272 it needs the state of the termination and the parameter values for 7273 that given termination. Wildcard termination identifier and wildcard 7274 contextID can be used by MGC in these Audit command. 7276 4.1 Audit Value 7277 The Audit value command can be sent from MGC to know the present values 7278 of the descriptors requested. The Audit Value command can be sent on 7279 either ROOT termination or any other termination in the MG. The 7280 section 2.1.1 illustrates the usage of Audit Value command on ROOT 7281 termination and section 2.1.2 illustrates the usage of Audit value 7282 command on a given termination. 7284 4.1.1 Audit value command on ROOT Termination 7285 The ROOT termination denotes the entire gateway as a single entity. 7286 There are two possible cases of Audit Value command on ROOT 7287 termination. The one in which the ContextId is NULL and the other in 7288 which the contextID is ALL. The case (a) below illustrate when the 7289 Audit Value command when the ContextId is * and in case (b) other in 7290 which the ContextId is NULL. The base ROOT package is assumed to be 7291 implemented on the ROOT termination. 7293 Case (a) 7294 In this section we will illustrate how MGC retrieves the lists of all 7295 contexts in MG. The Audit Value command with ContextId '*' and 7296 termination identifier ROOT enables MGC to get all the valid contextID 7297 values. 7299 Step 1 7300 MGC to MG: 7301 MEGACO/1 [207.176.47.89]: 27000 7302 Transaction = 1234 { 7303 Context = * { 7304 AuditValue= ROOT {Audit { } } 7305 } 7306 } 7307 The MG after receiving the command from MGC constructs the response 7308 with all the contextID that is active in that MG. 7310 Step 2 7311 MG to MGC: 7312 MEGACO/1 [216.33.33.61]: 25000 7313 Reply = 1234 { 7314 Context = 100 { 7315 AuditValue= TermA, TermB 7316 } 7317 Context = 200 { 7318 AuditValue= TermC, TermD 7319 } 7320 Context = 300 { 7321 AuditValue= TermE, TermF 7322 } 7323 } 7325 Case (b) 7326 This section illustrates the usage of ROOT termination identifier with 7327 NULL ContextID. This command is supposed to return the values of 7328 properties and statistics implemented on ROOT. The MGC generates the 7329 AuditValue message to MGC. 7331 Step 1 7332 MGC to MG: 7333 MEGACO/1 [207.176.47.89]: 27000 7334 Transaction = 1234 { 7335 Context = - { 7336 AuditValue= ROOT {Audit {Media, Statistics} } 7337 } 7338 } 7339 The MG responds with the values of properties that are defined on the 7340 ROOT termination. These properties include the Maximum number of 7341 contexts, Maximum number of terminations per context, normal MG 7342 execution time, normal MGC execution time and Provisional response 7343 timer value. There are no statistics that are defined on the ROOT 7344 termination. Hence the MG responds with the statistics token only. 7346 Step 2 7347 MG to MGC: 7348 MEGACO/1 [216.33.33.61]: 25000 7349 Reply = 1234 { 7350 Context = - { 7351 AuditValue= ROOT 7352 Media { 7353 TerminationState{ 7354 MaxNumberOfContexts = 100, 7355 MaxTerminationsPerContext = 2, 7356 NormalMGExecutionTime = 1000, 7357 NormalMGCExecutionTime = 1000, 7358 ProvisionalResponseTimerValue=1000, 7359 } 7361 Audit {statistics} 7362 } 7363 } 7365 4.1.2 Audit value on non-ROOT terminations 7366 This section illustrates the usage of AuditValue command on 7367 terminations other than ROOT. The Audit value command response 7368 constitutes all the active value of the descriptors that are requested 7369 by MGC. In this example we assume that the descriptors are already 7370 updated with commands from MGC. The MGC audit is done when the 7371 termination is in valid context. This is to include the statistics 7372 descriptor in the response from MG. The termination is assumed to be 7373 Ephemeral to use all the statistics defined in network package and 7374 RTP package. The second message illustrates the use of AuditValue to 7375 get the active descriptor values defined on physical terminations. 7377 Step 1 7378 MGC to MG: 7379 MEGACO/1 [216.33.33.61]:27000 7380 Transaction = 1234 { 7381 Context = 2 {AuditValue = EphA{ 7382 Audit{Media, DigitMap, Events, Signals, Packages, Statistics 7383 }} 7384 } 7385 } 7387 The MG responds with the media descriptor, packages and statistics. 7388 The Digit map, signal and events are not defined on this ephemeral 7389 termination hence only tokens are sent back in the response. 7391 Step 2 7392 MG to MGC: 7393 MEGACO/1 [209.110.59.34]:25000 7394 Reply = 1234 { 7395 Context = 2 { 7396 AuditValue = EphA { 7397 Media { 7398 TerminationState { ServiceState = InService, 7399 Buffer = OFF }, 7400 Stream = 1 { 7401 LocalControl { Mode = SendReceive, 7402 nt/jit=40 }, 7403 Local { 7404 v=0 7405 c=IN IP4 209.110.59.33 7406 m=audio 30000 RTP/AVP 0 7407 a=ptime:30 7408 }, 7409 Remote { 7411 v=0 7412 c=IN IP4 207.176.47.90 7413 m=audio 40000 RTP/AVP 0 7414 a=ptime:30 7415 } } }, 7416 audit { Events, 7417 Signals, 7418 DigitMap}, 7419 Packages {nt-1, rtp-1}, 7420 Statistics { rtp/ps=1200, ; packets sent 7421 nt/os=62300, ; octets sent 7422 rtp/pr=700, ; packets received 7423 nt/or=45100, ; octets received 7424 rtp/pl=0.2, ; % packet loss 7425 rtp/jit=20, 7426 rtp/delay=40 } ; avg latency 7427 } 7428 } 7429 } 7431 The MGC in the following command generates audit value command for 7432 physical termination that is in a context. Here only DigitMap, event 7433 and signal descriptor are audited. 7435 Step 3 7436 MGC to MG: 7437 MEGACO/1 [216.33.33.61]:27000 7438 Transaction = 1235 { 7439 Context = 2 {AuditValue = TermA{ 7440 Audit{ DigitMap, Events, Signals 7441 }} 7442 } 7443 } 7444 The MG after receiving the command responds with the event, signal 7445 and digit map descriptors that are active on the termination. 7446 Step 4 7447 MG to MGC: 7448 MEGACO/1 [209.110.59.34]:25000 7449 Reply = 1235 { 7450 Context = 2 { 7451 Modify = TermA{ 7452 Events = 2223 { 7453 al/on, dd/ce {DigitMap=Dialplan0} 7454 }, 7455 Signals {cg/dt}, 7456 DigitMap= Dialplan0{ 7457 (0| 00|[1-7]xxx|8xxxxxxx|Fxxxxxxx|Exx|91xxxxxxxxxx|9011x.)} 7458 } 7459 } 7460 } 7462 4.2 Audit Capability 7464 The Audit capability command from MGC retrieves the possible values of 7465 the descriptors requested. The first section 5.2.1 illustrates the 7466 Audit capability command on ROOT termination and 5.2.2 on terminations 7467 other than ROOT termination. 7469 4.2.1 Audit Capability on ROOT termination 7470 The Audit Capability command on ROOT termination is used to determine 7471 the properties that are implemented on the ROOT termination. The 7472 response from MG includes the possible values of the properties. 7474 Step 1: 7475 MGC to MG: 7476 MEGACO/1 [216.33.33.61]:27000 7477 Transaction = 1235 { 7478 Context = - {Audit Capability = ROOT{ 7479 Audit{ Media }} 7480 } 7481 } 7483 The properties that are defined on the ROOT in this example are the 7484 Max number of Contexts, maximum terminations per context, normal MG 7485 execution time, normal MGC execution time and provisional response 7486 timer value. 7488 Step 2 7489 MG to MGC: 7490 MEGACO/1 [209.110.59.34]:25000 7491 Reply = 1235 { 7492 Context = - { 7493 Modify = ROOT{ 7494 Media { TerminationState { MaxNumberOfContexts =10, 7495 MaxTerminationsPerContext =2, NormalMGExecutionTime =250, 7496 NormalMGCExecutionTime =250, 7497 ProvisionalResponseTimerValue = 200 }} 7498 } 7499 } 7500 } 7502 4.2.2 Audit Capability on non-Root Terminations. 7503 This section illustrates the usage of Audit Capability command on a 7504 non-ROOT termination. The MGC in this example is generating Audit 7505 Capability for Events descriptor and signal descriptor. The MG should 7506 respond with the possible values of these descriptors. 7508 Step 1: 7510 MGC to MG: 7511 MEGACO/1 [216.33.33.61]:27000 7512 Transaction = 1234 { 7513 Context = - {AuditCapability = TermA{ 7514 Audit{ Events, Signals 7515 }} 7516 } 7517 } 7518 The response has all the possible values. In this example for 7519 simplicity event parameters are not included. The packages that are 7520 realized on TermA are analog line supervision package, DTMF detection 7521 package call progress tone generation package, tone generation package, 7522 and generic package. 7524 Step 2 7525 MG to MGC: 7526 MEGACO/1 [209.110.59.34]:25000 7527 Reply = 1234 { 7528 Context = - { 7529 Modify = TermA{ 7530 Events = 0 {g/cause, g/signalcompletion, tonedet/std, 7531 tonedet/etd, tonedet/ltd, dd/ce, al/on, al/of, al/fl}, 7532 Signals {cg/dt, cg/rt, cg/bt, cg/ct, cg/sit, cg/wt, 7533 cg/pt, cg/cw, cg/cr}, 7534 } 7535 } 7536 } 7538 5. IVR using MEGACO 7540 The Interactive Voice Response (IVR) is assumed to be a gateway with 7541 only ephemeral terminations. The IVR is capable of playing 7542 announcements, detecting digits and reporting the same to the MGC. 7543 In this example we assume a IVR, which is controlled by a MGC. The 7544 IVR is assumed to play some announcement and detects the DTMF digits 7545 and reports the same to MGC. This section presents few call scenarios 7546 where a residential user is connected to IVR, Trunking gateway 7547 connected to IVR, call disconnection from residential and Trunking 7548 gateway to the IVR. 7550 5.1 Connecting Residential gateway to IVR. 7552 _______________________________________________________ 7553 | | | 7554 USERA | RGW1 | MGC | IVR 7555 _____________|___________|___________|__________________ 7556 | | | | 7557 | | | | 7558 | |<----------| | 7559 | |Modify to | | 7560 | |check offhook | 7561 | |---------->|<----------| 7562 | |Modify Resp| Modify Resp 7563 |----------->| | | 7564 |UserA offhook | | 7565 | |---------->| | 7566 | |Notify offhook | 7567 | |<----------| | 7568 | |Notify Resp| | 7569 | |<----------| | 7570 | |Modify SG:dialtone | 7571 | |ED:al/on,dd/ce{Dmap1} | 7572 | |DM:Dmap1 = 2XXX | 7573 |<-----------| | | 7574 |Dial Tone |---------->| | 7575 | |Modify Resp| | 7576 | | | | 7577 |----------->| | | 7578 |User Dials Digits | | 7579 | |---------->| | 7580 | |Notify digits | 7581 | |<----------| | 7582 | |Notify Response | 7583 | |<----------| | 7584 | | Add TermA SD:ringbacktone 7585 | | Add $, Local SDP Info -underspecified 7586 |<-----------| | | 7587 |RingBack Tone | | 7588 | |---------->| | 7589 | |Modify Resp TermA | 7590 | |Add Resp Local SDP (Specified) 7591 | | |---------->| 7592 | | |Add $ Local(Underspecified) 7593 | | | Remote SDP (Specified) 7594 | | | | 7595 | | |<----------| 7596 | | |Add Resp EphB Local Specified 7597 | |<----------| | 7598 | |Modify TermA SendRecv | 7599 | |Modify EphA Remote(Specified) SendRecv 7600 | |---------->| | 7601 | |Modify Resp| | 7602 |/----------------------------------\| 7603 | RTP MEDIA | 7604 |\----------------------------------/| 7605 |____________|___________|___________| 7607 The MGC initially generates a Modify command to the Residential gateway 7608 to which UserA is connected. The Modify command lists a offhook event 7609 in the Events descriptor. The embedded signal descriptor lists the 7610 dial tone and the embedded event descriptor lists the Digit completion 7611 event of the DTMF package. 7613 Step 1 7614 MGC to RGW: 7615 MEGACO/1 [216.33.33.61]:27000 7616 Transaction = 1234 { 7617 Context = - { 7618 Modify = TermA { 7619 Media { 7620 LocalControl { 7621 Mode = ReceiveOnly} 7622 } , 7623 Events = 1111 {al/of { Signals {cg/dt},Embed = 1112 {al/on, dd/ce 7624 {DigitMap=Dmap1}} } 7625 DigitMap= Dmap1{(2XXX)} 7626 } 7627 } 7628 } 7630 The residential gateway responds the Modify command. 7632 Step 2: 7633 MG1 to MGC: 7634 MEGACO/1 [209.110.59.34]:25000 7635 Reply = 1234 { 7636 Context = - {Modify = TermA} 7637 } 7639 In this example User A goes off hook. This event is detected by the 7640 RGW and constructs the Notify message to the MGC. The MG uses the same 7641 request id (1111) sent by the MGC in its initial command. The 7642 timestamp of the event detected is also passed as parameter to the 7643 observed event. 7645 Step 3 7646 MG1 to MGC: 7647 MEGACO/1 [209.110.59.34]:25000 7648 Transaction = 2000 { 7649 Context = - { 7650 Notify = TermA {ObservedEvents =1111 { 7651 20010202T10000000:al/of}} 7652 } 7653 } 7655 MGC generates the Notify response and responds with further messages 7656 towards the MG that generated the Notify command. 7658 Step 4 7659 MGC to MG1: 7660 MEGACO/1 [216.33.33.61]: 27000 7661 Reply = 2000 { 7662 Context = - {Notify = TermA} 7663 } 7665 The users dials digits and that takes the call to be terminated on the 7666 IVR. The digits dialed by the user are reported to the MGC in the 7667 Notify command. 7669 Step 6 7670 MG1 to MGC: 7671 MEGACO/1 [209.110.59.34]: 25000 7672 Transaction = 2001 { 7673 Context = - { 7674 Notify = TermA {ObservedEvents =1112 { 7675 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 7676 } 7677 } 7679 MGC after receiving the Notify command responds back with the Notify 7680 response. 7681 Step 7 7682 MGC to MG1: 7683 MEGACO/1 [216.33.33.61]: 27000 7684 Reply = 2001 { 7685 Context = - {Notify = TermA} 7686 } 7688 MGC after receiving the Notify command starts analyzing the dialed 7689 digits. In this example the called subscriber is connected to the RGW2, 7690 which is again controlled by the same MGC. The MGC generates a 7691 transaction with two commands clubbed into the same Action. The first 7692 command is to create a new context and add the physical termination 7693 TermA into it. As the MGC is aware that the destination user UserB is 7694 free it indicates MG1 to apply ringback tone to the termination of 7695 UserA. The second command is generated to create an ephemeral 7696 termination and add the created termination in the same context that 7697 was created because of the earlier command. Here we assumed a single 7698 set of SDP information indicating that Reserve group is not used. The 7699 Reserve Value feature is also not used. 7701 Step 8 7702 MGC to MG1: 7703 MEGACO/1 [216.33.33.61]: 27000 7704 Transaction = 1235 { 7705 Context = $ { 7706 Add = TermA { 7707 Signals { cg/rt } 7708 } 7709 Add = $ { 7710 Media { 7711 { 7712 LocalControl { 7713 Mode = ReceiveOnly, 7714 }, 7715 Local { 7716 v=0 7717 c=IN IP4 $ 7718 m=audio $ RTP/AVP 4 7719 } 7720 } 7721 } 7722 } 7723 } 7725 In this example the connection fields IP address, the media field port 7726 number are unspecified. The MG in its response indicates the IPAddress 7727 and port number used. The contextID is also not specified indicating 7728 the creation of a new context. In this example the MG creates a context 7729 with contextID 1. The physical termination TermA is added to context 1. 7730 The mode of the physical termination was earlier set to Receiveonly 7731 and in this message the ephemeral termination is requested to create 7732 with Receiveonly mode. The ephemeral termination created in this 7733 example is EphA. MG responds with the allocated IP address 7734 209.110.59.33 and port number 30000. 7736 Step 9 7737 MG1 to MGC: 7738 MEGACO/1 [209.110.59.34]: 25000 7739 Reply = 1235 { 7740 Context = 1 { 7741 Add = TermA, 7742 Add=EphA{ 7743 Media { 7744 Local { 7745 v=0 7746 c=IN IP4 209.110.59.33 7747 m=audio 30000 RTP/AVP 4 7748 a=recvonly 7749 } ; RTP profile for G.723 is 4 7750 } 7751 } 7753 } 7754 } 7755 } 7756 MGC generates a similar transaction towards the IVR media gateway. The 7757 ContextID specified in the action is $. The Add command is meant for 7758 create an ephemeral termination. MGC has the local information for the 7759 ephemeral termination EphA in the RGW1. This information is passed as 7760 remote information to the IVR. The new ephemeral termination that will 7761 be created will take these parameters as the remote SDP information. 7763 Step 10 7764 MGC to IVR: 7765 MEGACO/1 [216.33.33.61]:27000 7766 Transaction = 1236 { 7767 Context = $ { 7768 Add = $ { 7769 Media { 7770 LocalControl { 7771 Mode = Receiveonly, 7772 }, 7773 Local { 7774 v=0 7775 c=IN IP4 $ 7776 m=audio $ RTP/AVP 4 7778 }, 7779 Remote { 7780 v=0 7781 c=IN IP4 209.110.59.33 7782 m=audio 30000 RTP/AVP 4 7783 } ; RTP profile for G.723 is 4 7784 } 7785 } 7786 } 7787 Events = 1113{ streamid = 1 dd/ce { dmap2 }} 7788 Digits = Dmap2 {2XXX} 7789 } 7790 } 7792 IVR after receiving the new transaction from MGC starts processing it. 7793 It creates a new context with contextID 2. The IVR creates a ephemeral 7794 termination with TerminationId EphB. The local information is 7795 under-specified from the MGC. The MG allocates the necessary resources 7796 for processing the media descriptor for the ephemeral termination. The 7797 MG responds to the MGC by specifying the IP address reserved for the 7798 local connection. In this example IVR reserves IP address 207.176.47.90 7799 and port number 40000. The IVR responds to MGC with the following 7800 transaction reply. 7802 Step 11 7803 MG2 to MGC: 7805 MEGACO/1 [207.176.47.89]: 26000 7806 Reply = 1236 { 7807 Context = 2 { 7808 Add = EphB{ 7809 Media { 7810 Local { 7811 v=0 7812 c=IN IP4 207.176.47.90 7813 m=audio 40000 RTP/AVP 4 7814 } 7815 } ; RTP profile for G723 is 4 7816 } 7817 } 7818 } 7819 The MGC after receiving the response forwards the remote SDP 7820 information in Modify command to the Residential gateway. The MGC 7821 generates message to the RGW to stop the ringback tone and changes 7822 the mode of the two terminations TermA and EphA to send receive. 7824 Step 12 7825 MGC to MG1: 7826 MEGACO/1 [216.33.33.61]: 27000 7827 Transaction = 1237 { 7828 Context = 1 { 7829 Modify = TermA { 7830 Media { 7831 LocalControl { 7832 Mode = sendrecv} 7833 } 7834 } 7835 Signals { } 7836 }, 7837 Modify = EphA { 7838 Media { 7839 LocalControl { 7840 Mode = sendrecv} 7841 Remote { 7842 v=0 7843 c=IN IP4 207.176.47.90 7844 m=audio 40000 RTP/AVP 4 7845 } 7846 } ; RTP profile for G723 is 4 7847 } 7848 } 7849 } 7850 } 7851 The empty signal descriptor in the Modify command for termination TermA, 7852 stop the ringback tone at the calling end. The remote SDP information is 7853 updated for the ephemeral termination EphA. The mode is changed to send 7854 receive. MG1 responds to the MGC with the response for the Modify 7855 commands. 7857 Step 13 7858 MG1 to MGC: 7859 MEGACO/1 [209.110.59.34]: 25000 7860 Reply = 1237 { 7861 Context = 1 {Modify = TermA, Modify = EphA} 7862 } 7863 Now the RTP flow is established. The IVR plays an announcement. The 7864 User dials digits depending upon the announcement. The digits are 7865 detected on the RTP stream. 7867 5.2 Disconnecting Residential User from IVR. 7869 This section illustrates the case of disconnecting a residential user 7870 from IVR. The assumption is that the RTP media is already established 7871 and now the MGC has to act upon the user actions. The MGC waits for the 7872 user to go onhook. Once the UserB goes onhook, MG2 reports the 7873 notification of the onhook event to the MGC. 7875 _______________________________________________________ 7876 | | | 7877 USERA | RGW1 | MGC | IVR 7878 _____________|___________|___________|__________________ 7879 | | | | 7880 |/----------------------------------\| 7881 | RTP MEDIA | 7882 |\----------------------------------/| 7883 |----------->| | | 7884 |UserA goes OnHook | | 7885 | |---------->| | 7886 | |Notify OnHook | 7887 | |<----------| | 7888 | |Notify Resp| | 7889 | |<----------| | 7890 | |Subtract TermA | 7891 | |Subtract EphA | 7892 | |---------->| | 7893 | |Subtract Resp TermA | 7894 | |Subtract Resp EphA Statistics 7895 | | |---------->| 7896 | | |Subtract EphB 7897 | | |<----------| 7898 | | |Subtract Resp EphB Statistics 7899 |____________|___________|___________| 7901 Step 1 7902 MG2 to MGC: 7903 MEGACO/1 [207.176.47.89]: 26000 7904 Transaction = 3000 { 7905 Context = 1 { 7906 Notify = TermA {ObservedEvents =1234 { 7907 20000202T10020000:al/on}} 7908 } 7909 } 7910 The MGC responds to the MG2 with the Notify response. 7912 Step 2 7913 MGC to MG2: 7914 MEGACO/1 [216.33.33.61]: 27000 7915 Reply = 3000 { 7916 Context = 1 {Notify = TermA} 7917 } 7918 The MGC generates transactions with two subtracts commands one for 7919 physical and other for ephemeral terminations. 7921 Step 3 7922 MGC to MG1 7923 MEGACO/1 [216.33.33.61]: 27000 7924 Transaction = 1234 { 7925 Context = 1 { 7926 Subtract = TermA {Audit{ }}, 7927 Subtract = EphA {Audit{Statistics}} 7928 } 7929 } 7930 The MG subtracts the two terminations from the context. The context 7931 itself is deleted with the subtract of the last termination from it. 7932 The MG1 responds to this transaction from MGC with statistics on 7933 ephemeral termination. 7935 Step 4 7936 MG1 to MGC: 7937 MEGACO/1 [209.110.59.34]:25000 7938 Reply = 1234 { 7939 Context = 1 { 7940 Subtract = TermA 7941 Subtract = EphA { 7942 Statistics { 7943 rtp/ps=1234, ; packets sent 7944 nt/os=56789, ; octets sent 7945 rtp/pr=987, ; packets received 7946 nt/or=65432, ; octets received 7947 rtp/pl=10, ; % packets lost 7948 rtp/jit=30, 7949 rtp/delay=30 ; average latency 7950 } 7951 } 7952 } 7953 } 7955 The MGC generates similar command towards the IVR to subtract the 7956 ephemeral termination. 7958 Step 5 7959 MGC to MG2: 7960 MEGACO/1 [216.33.33.61]: 27000 7961 Transaction = 1235 { 7962 Context = 2 { 7963 Subtract = EphB {Audit{Statistics}} 7964 } 7965 } 7966 The IVR responds to the subtract commands generated by MGC. 7968 Step 6 7969 MG2 to MGC: 7970 MEGACO/1 [209.110.59.34]:25000 7971 Reply = 1235 { 7972 Context = 2 { 7973 Subtract = EphB { 7974 Statistics { 7975 rtp/ps=987, ; packets sent 7976 nt/os=65432, ; octets sent 7977 rtp/pr=1234, ; packets received 7978 nt/or=56789, ; octets received 7979 rtp/pl=10, ; % packets lost 7980 rtp/jit=30, 7981 rtp/delay=30 ; average latency 7982 } 7983 } 7984 } 7985 } 7987 5.3 Connecting Trunking Gateway to IVR. 7988 This section illustrates a call initiated from Trunking gateway towards 7989 IVR. It is assumption that the same MGC controls both the IVR and the 7990 Trunking gateway. 7992 ____________________________________________________ 7993 | | | 7994 SS7 Switch | TGW | MGC | IVR 7995 ____________|________ ___|___________|______________ 7996 | | | | 7997 | | | | 7998 |----------------------->| | 7999 | IAM | | 8000 |<-----------------------| | 8001 | ACM | | 8002 | | | | 8003 | |<----------| | 8004 | | Add Phy | | 8005 | | Add $, Local SDP Info -underspecified 8006 | |---------->| | 8007 | |Add Resp Phy | 8008 | |Add Resp Local SDP (Specified) 8009 | | |---------->| 8010 | | |Add $ Local(Underspecified) 8011 | | | Remote SDP (Specified) 8012 | | | | 8013 | | |<----------| 8014 | | |Add Resp EphB Local Specified 8015 |<-----------------------| | 8016 | ANM | | 8017 | |<----------| | 8018 | |Modify Phy SendRecv | 8019 | |Modify EphA Remote(Specified) SendRecv 8020 | |---------->| | 8021 | |Modify Resp| | 8022 | |/---------------------\| 8023 | | RTP MEDIA | 8024 | |\---------------------/| 8026 The MGC receives IAM message from the SS7 switch. In this example we 8027 assume that the Signaling gateway and the Media Gateway are together 8028 in one physical box. The MGC responds with the ACM message. The MGC 8029 also generates add command to the Trunking gateway for addition of a 8030 circuit group of specific trunk and also another Add for ephemeral 8031 termination. For the ephemeral termination the MGC specifies few SDP 8032 parameters in the Local descriptor and many of the parameters are 8033 underspecified. This facilitates the MG to assign values by its own. 8035 Step 1 8036 MGC to TGW 8037 MEGACO/1 [216.33.33.61]: 27000 8038 Transaction = 1234 { 8039 Context = $ { 8040 Add = Trunk1/line1 {Media { 8041 LocalControl {Mode = SendRecv}}, 8042 }, 8043 Add = $ {Media { 8044 LocalControl { 8045 Mode = Receiveonly, 8046 }, 8047 Local { 8048 v=0 8049 c=IN IP4 $ 8050 m=audio $ RTP/AVP 4 8051 } 8052 } 8053 } 8054 } 8055 } 8056 } 8058 The Trunking gateway after responds with a contextID in this example 1. 8059 The ephemeral termination is created and added to the same context as 8060 the physical termination. The ephemeral termination added in this 8061 example is EPHA. The local parameters are specified in the response. 8062 The IP address chosen for the media transport in this example is 8063 209.110.59.33, and the port number specified 30000. 8065 Step 2 8066 TGW to MGC: 8067 MEGACO/1 [207.176.47.89]: 26000 8068 Reply = 1234 { 8069 Context = 1 { 8070 Add = Trunk1/line1, 8071 Add = EphB{ 8072 Media { 8073 Local { 8074 v=0 8075 c=IN IP4 209.110.59.33 8076 m=audio 30000 RTP/AVP 4 8077 } 8078 } ; RTP profile for G723 is 4 8079 } 8080 } 8081 } 8083 The MGC after receiving the response from the Trunking gateway uses the 8084 SDP information in the response sent from TG to the IVR. The command 8085 is for adding the ephemeral termination. The MGC requests creation of 8086 context and to the termination in the same. 8088 Step 3 8089 MGC to IVR 8090 MEGACO/1 [216.33.33.61]: 27000 8091 Transaction = 1235 { 8092 Context = $ { 8093 Add = $ {Media { 8094 LocalControl { 8095 Mode = Receiveonly, 8096 }, 8097 Local { 8098 v=0 8099 c=IN IP4 $ 8100 m=audio $ RTP/AVP 4 8101 } 8102 Remote{ 8103 v=0 8104 c=IN IP4 209.110.59.33 8105 m=audio 30000 RTP/AVP 4 8106 } 8107 } ; RTP profile for G723 is 4 8108 } 8109 } 8110 } 8112 The IVR creates a context with ContextId 2. The ephemeral termination 8113 EPHB is created with the specified SDP information. The response from 8114 the IVR specifies the local SDP information. 8116 Step 4 8117 RGW to MGC: 8118 MEGACO/1 [207.176.47.89]: 26000 8119 Reply = 1235 { 8120 Context = 2 { 8121 Add = EphB{ 8122 Media { 8123 Local { 8124 v=0 8125 c=IN IP4 209.110.59.33 8126 m=audio 30000 RTP/AVP 4 8127 } 8128 } ; RTP profile for G723 is 4 8129 } 8130 } 8131 } 8132 The MGC after receiving the response with the local SDP information 8133 conveys the same to the Trunking gateway as remote SDP information in 8134 the Modify command. 8136 Step 5 8137 MGC to TGW 8138 MEGACO/1 [216.33.33.61]: 27000 8139 Transaction = 1236 { 8140 Context = 1 { 8141 Modify = EphA 8142 {Media { 8143 LocalControl { 8144 Mode = SendRecv, 8145 }, 8146 Remote{ 8147 v=0 8148 c=IN IP4 209.110.59.33 8149 m=audio 30000 RTP/AVP 4 8150 } 8152 } 8153 } 8154 } 8155 } 8156 } 8158 The Trunking gateway responds to the Modify command. 8160 Step 6 8161 TGW to MGC: 8162 MEGACO/1 [207.176.47.89]: 26000 8163 Reply = 1236 { 8164 Context = 1 { 8165 Modify = EphB 8166 } 8167 } 8168 5.4 Disconnecting Trunking gateway from IVR 8169 This section illustrates the disconnection of an IVR call from 8170 Trunking gateway. The Trunking gateway and the Signaling gateway are 8171 assumed to be present in the same physical box. The SS7 messages are 8172 received by the Signaling gateway and are forwarded to the MGC through 8173 the signaling gateway. 8175 _____________________________________________________ 8176 | | | 8177 SS7 Switch | TGW | MGC | IVR 8178 ____________|________ ___|___________|______________ 8179 | | | | 8180 | |/---------------------\| 8181 | | RTP MEDIA | 8182 | |\---------------------/| 8183 |----------------------->| | 8184 | REL | | 8185 | |<----------| | 8186 | |Subtract Phy | 8187 | |Subtract EphA | 8188 | |---------->| | 8189 | |Subtract Resp Phy | 8190 | |Subtract Resp EphA Statistics 8191 |<-----------------------| | 8192 | RLC | | 8193 | | |---------->| 8194 | | |Subtract EphB 8195 | | |<----------| 8196 | | |Subtract Resp EphB Statistics 8197 |____________|___________|___________| 8199 It is assumed that the RTP stream is already established. The REL 8200 message is received by the MGC through the Signaling gateway. The MGC 8201 initiates the terminating of the IVR call. The MGC initially generates 8202 a transaction with two subtracts towards the Trunking gateway. One 8203 subtract for removing the physical termination and other to remove the 8204 ephemeral termination. 8206 Step 1 8207 MGC to TGW: 8208 MEGACO/1 [216.33.33.61]: 27000 8209 Transaction = 1234 8210 Context = 2 { 8211 Subtract = Trunk2/line1{Audit{ }}, 8212 Subtract = EphB {Audit{Statistics}} 8213 } 8214 } 8215 The TGW responds to the subtract commands generated by MGC. 8217 Step 2 8218 TGW to MGC: 8219 MEGACO/1 [209.110.59.34]:26000 8220 Reply = 1234 8221 Context = 2 { 8222 Subtract = Trunk2/line1 8223 Subtract = EphB { 8224 Statistics { 8225 rtp/ps=987, ; packets sent 8226 nt/os=65432, ; octets sent 8227 rtp/pr=1234, ; packets received 8228 nt/or=56789, ; octets received 8229 rtp/pl=10, ; % packets lost 8230 rtp/jit=30, 8231 rtp/delay=30 ; average latency 8232 } 8233 } 8234 } 8235 } 8237 The MGC generates similar command towards the IVR. 8239 Step 3 8240 MGC to IVR: 8241 MEGACO/1 [216.33.33.61]: 27000 8242 Transaction = 1235{ 8243 Context = 1 { 8244 Subtract = EphA {Audit{Statistics}} 8245 } 8246 } 8247 The IVR responds to the subtract commands generated by MGC. 8249 Step 4 8250 IVR to MGC: 8251 MEGACO/1 [209.110.59.34]:25000 8252 Reply = 1235{ 8253 Context = 1 { 8254 Subtract = EphA { 8255 Statistics { 8256 rtp/ps=987, ; packets sent 8257 nt/os=65432, ; octets sent 8258 rtp/pr=1234, ; packets received 8259 nt/or=56789, ; octets received 8260 rtp/pl=10, ; % packets lost 8261 rtp/jit=30, 8262 rtp/delay=30 ; average latency 8263 } 8264 } 8265 } 8266 } 8268 6. Wildcard ContextID usage 8269 The protocol defines two types of wildcards. The CHOOSE wildcard and 8270 the ALL wildcard. The CHOOSE wildcard when used from MGC for the 8271 ContextId enables MG to create a new context The ALL wildcard 8272 ContextID enables MGC to multiple contexts using a single Action. If 8273 the MGC needs to perform an operation common to all Contexts it can 8274 use the Wildcard ContextID for this purpose. For example if MGC needs 8275 to subtract all terminations irrespective of context they are in, it 8276 can use ContextId '*' and termination ID '*'. This enables MG to 8277 perform the operation on all contexts that are active in the MG. The 8278 CHOOSE wildcard had already been in used in earlier call flows. This 8279 section shows a scenario where MGC uses * wildcard in ContextID. 8281 Step 1: 8282 MGC to MG: 8283 MEGACO/1 [216.33.33.61]: 27000 8284 Transaction = 1234{ 8285 Context = * { 8286 Subtract = *{Audit{Statistics}} 8287 } 8288 } 8289 The MG now subtracts all terminations in any of the contexts. There 8290 will be as many actions as the number of Contexts that are active in 8291 the MG. In this example we assume two contexts Context1 and Context2 8292 with one two terminations in each of the context. 8294 Step 2: 8295 MG to MGC: 8296 MEGACO/1 [209.110.59.34]:25000 8297 Reply = 1234{ 8298 Context = 1{ 8299 Subtract = TermA {audit = { Statistics}} 8300 Subtract = EphA 8301 Statistics { 8302 rtp/ps=987, ; packets sent 8303 nt/os=65432, ; octets sent 8304 rtp/pr=1234, ; packets received 8305 nt/or=56789, ; octets received 8306 rtp/pl=10, ; % packets lost 8307 rtp/jit=30, 8308 rtp/delay=30 ; average latency 8309 } 8310 } 8311 } 8312 Context = 2 { 8313 Subtract = TermB { audit = {statistics }} 8314 Subtract = EphB { 8315 Statistics { 8316 rtp/ps=987, ; packets sent 8317 nt/os=65432, ; octets sent 8318 rtp/pr=1234, ; packets received 8319 nt/or=56789, ; octets received 8320 rtp/pl=10, ; % packets lost 8321 rtp/jit=30, 8322 rtp/delay=30 ; average latency 8323 } 8324 } 8325 } 8326 } 8328 7. Wildcard TerminationId Usage 8329 The wildcards when used for TerminationId can represent CHOOSE, ALL or 8330 partial choose. The partial choose enables MGC to specify part of 8331 TerminationId and leaving the remaining part of the TerminationId 8332 either * or $. The CHOOSE wildcard usage is illustrated in earlier 8333 examples. The Partial wildcard usage is illustrated in the Trunking 8334 gateway examples. The * wildcard example is treated in this section. 8336 In this example the MGC generates a command with wildcard ALL "*" 8337 TerminationId, to enable MG to processes the command for all the 8338 terminations in the Gateway. The Media gateway is assumed to be a 8339 residential gateway. The events descriptor requests MG to check for 8340 offhook and apply dial tone when the offhook event occurs. 8342 Step 1: 8343 MGC to RGW: 8344 MEGACO/1 [216.33.33.61]:27000 8345 Transaction = 1234 { 8346 Context = - { 8347 Modify = *{ 8348 Media { 8349 LocalControl { 8350 Mode = ReceiveOnly} 8351 } , 8352 Events = 1111 {al/of { signals { cg / dt } , 8353 embed event { al/on , dd/ce { dmap1} } } } 8354 DigitMap = dmap1 { 2XXX } 8355 } 8356 } 8357 } 8359 The MG responds with specifying each of the TerminationId for which 8360 the command has been processed. 8362 Step 2: 8363 MG1 to MGC: 8364 MEGACO/1 [209.110.59.34]:25000 8365 Reply = 1234 { 8366 Context = - 8367 {Modify = TermA} 8368 {Modify = TermB} 8369 {Modify = TermC} 8370 {Modify = TermD} 8371 {Modify = TermE} 8372 {Modify = TermF} 8373 {Modify = TermG} 8374 {Modify = TermH} 8375 {Modify = TermI} 8376 {Modify = TermJ} 8377 } 8379 8. Supplementary services support 8381 8.1 Call Transfer 8383 _____________________________________________________________________ 8384 | | | 8385 MG1 | MGC | MG2 | MG3 8386 ________________|_______________|________________|____________________ 8387 | | | | 8388 |<----------------|-------------->| | 8389 |Initial Modify | Initial Modify| | 8390 | |-------------------------------->| 8391 | | Initial Modify | 8392 |---------------->|<--------------| | 8393 |Modify Response | Modify Resp | | 8394 | |<--------------------------------| 8395 | | Modify Response | 8396 |---------------->| | | 8397 | Notify OffHook | | | 8398 |<----------------| | | 8399 |Notify Response | | | 8400 |<----------------| | | 8401 |Modify ED:dd/ce{DigitMap=dmap1},al/on SD:cg/dt | 8402 <-----|---------------->| | | 8403 Dial | Modify Resp | | | 8404 Tone | | | | 8405 ------>| | | | 8406 Digits |---------------->| | | 8407 |Notify Digits | | | 8408 |<----------------| | | 8409 |Notify Response | | | 8410 |<----------------|-------------->| | 8411 |Modify ringback | Modify Ring | | 8412 <------|---------------->|<--------------| | 8413 ring | Modify Resp | Modify Resp | | 8414 back | |<--------------| | 8415 | |Notify OffHook | | 8416 |<----------------|-------------->| | 8417 | Add Phy |Notify Resp | | 8418 |Add Eph Local Unspecified | | 8419 |---------------->| | | 8420 |Add Phy Resp | | | 8421 |Add Eph Resp Local specified | | 8422 | |-------------->| | 8423 | |Add Phy | | 8424 | |Add Eph Local unspecified | 8425 | | Remote Specified | 8426 | |<--------------| | 8427 | | Add Phy Resp | | 8428 | | Add Eph Resp Local specified | 8429 |<----------------| | | 8430 | Modify Eph Remote Specified | | 8431 |---------------->| | | 8432 | Modify Resp | | | 8433 |/-------------------------------\| | 8434 | RTP MEDIA | | 8435 |\-------------------------------/| | 8436 | |<--------------| | 8437 | | Notify Flash | | 8438 | |-------------->| | 8439 |<----------------| Notify Resp | | 8440 | Modify RecvOnly | --->| | 8441 |---------------->| DialTone| | 8442 | Modify Resp |<--------------| | 8443 | | Notify Digits | | 8444 | |-------------->| | 8445 | | Notify Resp | | 8446 | |-------------------------------->| 8447 | | Modify Ring | 8448 | |<--------------------------------| 8449 | | Modify Response | 8450 | |-------------->| | 8451 | | Modify Ringback tone | 8452 | |<--------------| | 8453 | | Modify Resp | | 8454 | |<--------------------------------| 8455 | | Notify OffHook | 8456 | |-------------------------------->| 8457 | | Notify Resp | 8458 | |-------------------------------->| 8459 | | Add Phy | 8460 | | Add Eph Local Unspecified | 8461 | | Remote Specified | 8462 | |<---------------------------------| 8463 | | Add Phy Resp | 8464 | | Add Eph Resp Local Specified 8465 | |-------------->| | 8466 | | Modify Eph Remote | 8467 | |<--------------| | 8468 | | Modify Resp | | 8469 | | |/---------------\| 8470 | | | RTP Media | 8471 | | |\---------------/| 8472 | |<--------------| | 8473 | | Notify OnHook | | 8474 | |-------------->| | 8475 | | Notify Resp | | 8476 | |-------------->| | 8477 | | Sub Phy | | 8478 | | Sub Eph | | 8479 | |<--------------| | 8480 | | Sub Phy Resp | | 8481 | | Sub Eph Resp Statistics | 8482 | |-------------------------------->| 8483 | | Modify Eph Remote | 8484 | |<--------------------------------| 8485 | | Modify Eph Resp | 8486 |<----------------| | | 8487 | Modify Eph Remote | | 8488 |---------------->| | | 8489 | Modify Resp | | | 8490 |/-------------------------------------------------\| 8491 | RTP MEDIA | 8492 |\-------------------------------------------------/| 8493 |---------------->| | | 8494 | Notify OnHook | | | 8495 |---------------->| | | 8496 | Notify Resp | | | 8497 | |-------------------------------->| 8498 | | Modify Phy busyTone | 8499 | |<--------------------------------| 8500 | | Modify Resp | 8501 |<----------------| | | 8502 | Sub Phy Sub Eph | | | 8503 |---------------->| | | 8504 | Sub Phy Resp | | | 8505 | Sub Eph Resp Statistics | | 8506 | |<--------------------------------| 8507 | | Notify OnHook | 8508 | |-------------------------------->| 8509 | | Notify Resp | 8510 | |-------------------------------->| 8511 | | Sub Phy | 8512 | | Sub Eph | 8513 | |<--------------------------------| 8514 | | Sub Phy Resp | 8515 | | Sub Eph Resp Statistics | 8516 _______|_________________|_______________|_________________|____________ 8518 The call Transfer feature in PSTN allows a user to tranfer a call that he 8519 Has received to another phone. This feature should be supported by MGC 8520 so that it is capable of generating required messages towards MG. In this 8521 example we assume that the MGC is capable of supporting Call Transfer. 8522 UserB, the Called party press flash hook and initiates call towards UserC. 8523 After UserC responds to the call, UserB goes onhook to connect UserA with 8524 UserC. 8526 The MGC generates the Modify message towards all the three Residential 8527 gateways to check for off hook on the terminations. (A wildcard 8528 command may also be used in this scenario but for simplicity we 8529 consider only command to specific terminations). We are not 8530 considering the embedded signal and event descriptors here. 8531 The MGC in NULL context generates the command to the 8532 specific termination TermA. The off hook event of the analog 8533 supervision package is used here. The request identifier specified 8534 in this example is 1111. The mode of the termination is set to 8535 receive only. The stream parameter is used with only the Local control 8536 descriptor. 8538 Step 1 8539 MGC to RGW1: 8540 MEGACO/1 [216.33.33.61]:27000 8541 Transaction = 1234 { 8542 Context = - { 8543 Modify = TermA { 8544 Media { 8545 LocalControl { 8546 Mode = Receiveonly} 8547 } , 8548 Events = 1111 {al/of} 8549 } 8550 } 8551 } 8553 MG, after receiving the command from MGC, accepts it and responds with 8554 the transaction reply. Here for only MG1 is shown to generate the 8555 response. In fact all the RGW generate the responses. 8557 Step 2 8559 MG1 to MGC: 8560 MEGACO/1 [209.110.59.34]:25000 8561 Reply = 1234 { 8562 Context = - {Modify = TermA} 8563 } 8565 In this example User A goes off hook. This event is detected by the 8566 RGW1 and it constructs the Notify message to the MGC. The MG uses the 8567 same request id (1111) sent by the MGC in its initial command. The 8568 timestamp of the event detected is also passed as a parameter to the 8569 observed event. 8571 Step 3 8572 MG1 to MGC: 8573 MEGACO/1 [209.110.59.34]:25000 8574 Transaction = 2000 { 8575 Context = - { 8576 Notify = TermA {ObservedEvents =1111 { 8577 20010202T10000000:al/of}} 8578 } 8579 } 8581 MGC generates the Notify response and responds with further messages 8582 towards the MG that generated the Notify command. 8584 Step 4 8585 MGC to MG1: 8586 MEGACO/1 [216.33.33.61]: 27000 8587 Reply = 2000 { 8588 Context = - {Notify = TermA} 8589 } 8591 The MGC in the following command issues a MODIFY command. The Modify 8592 command contains a signal descriptor for the application of dial tone 8593 to the user. The digit map descriptor here is used to configure a 8594 digit map on the termination. The digit map name used in the example 8595 is Dmap1 and the dial patter is 2XXX. The event descriptor lists digit 8596 map completion event of the DTMF detection package and onhook of the 8597 analog line supervision package. The request id specified in the 8598 event descriptor is 1112. 8600 Step 5 8601 MGC to MG1: 8603 MEGACO/1 [216.33.33.61]: 27000 8604 Transaction = 1235 { 8605 Context = - { 8606 Modify = TermA { 8607 Signals {cg/dt}, 8608 DigitMap= Dmap1{(2XXX)} 8609 Events = 1112 { 8610 al/on, dd/ce {DigitMap=Dmap1} 8611 }, 8612 } 8613 } 8614 } 8616 MG validates the Modify command and responds to the MGC and then starts 8617 processing the descriptors listed. 8619 Step 6 8620 MG1 to MGC: 8621 MEGACO/1 [209.110.59.34]: 25000 8622 Reply = 1235 { 8623 Context = - {Modify = TermA} 8624 } 8626 The descriptors are processed in the order that is specified by the 8627 MGC. In this example the order of descriptor is signal descriptor, 8628 digit map descriptor followed by Events descriptor. The MG first 8629 processes the signal descriptor. The dial tone is applied to the 8630 Termination specified. The Digit map is updated in the Database of the 8631 termination. The Digit map will be ACTIVE on the termination as the 8632 digit map completion event is listed in the events descriptor with the 8633 digit map name. A digit map is activated whenever a new event 8634 descriptor is applied to the termination or embedded event descriptor 8635 is activated, and that event descriptor contains a digit map completion 8636 event which itself contains a digit map parameter. UserA after receiving 8637 the dial tone starts dialing digits. In this example we will not dwell 8638 into the different possible cases of digit dialing by the user. Its 8639 assumed that the digits dialed by the user, match with the digit map 8640 pattern. Lets assume that the user has dialed 2992. MG detects the 8641 digits dialed and reports the same as parameter to the digit map 8642 completion event. A notify command is generated from MG1 to MGC. The 8643 MG again uses the same request identifier as specified by the MGC. 8645 Step 7 8646 MG1 to MGC: 8647 MEGACO/1 [209.110.59.34]: 25000 8648 Transaction = 2001 { 8649 Context = - { 8650 Notify = TermA {ObservedEvents =1112 { 8651 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 8652 } 8653 } 8655 MGC after receiving the Notify command responds back with the Notify 8656 response. 8658 Step 8 8659 MGC to MG1: 8660 MEGACO/1 [216.33.33.61]: 27000 8661 Reply = 2001 { 8662 Context = - {Notify = TermA} 8663 } 8665 MGC after receiving the Notify command starts analyzing the dialed 8666 digits. In this example the called subscriber is connected to the 8667 RGW2, which is again controlled by the same MGC. The MGC generates a 8668 transaction with two commands clubbed into the same Action. The first 8669 command is to create a new context and add the physical termination 8670 TermA into it. As the MGC is aware that the destination user UserB is 8671 free it indicates MG1 to apply ringback tone to the termination of 8672 UserA. The second command is generated to create an ephemeral 8673 termination and add the created termination in the same context 8674 that was created because of the earlier command. Here we assumed a 8675 single set of SDP information indicating that Reserve group is not 8676 used. The Reserve Value feature is also not used. 8678 Step 9 8679 MGC to MG1: 8680 MEGACO/1 [216.33.33.61]: 27000 8681 Transaction = 1236 { 8682 Context = $ { 8683 Add = TermA { 8684 Signals { cg/rt } 8685 } 8686 Add = $ { 8687 Media { 8688 { 8689 LocalControl { 8690 Mode = ReceiveOnly, 8691 }, 8692 Local { 8693 v=0 8694 c=IN IP4 $ 8695 m=audio $ RTP/AVP 4 8696 } 8697 } 8698 } 8699 } 8700 } 8702 In this example the connection fields IP address, the media field port 8703 number are unspecified. The MG in its response indicates the IPAddress 8704 and port number used. The contextID is also not specified indicating 8705 the creation of a new context. In this example the MG creates a context 8706 with contextID 1. The physical termination TermA is added to context 1. 8707 The mode of the physical termination was earlier set to Receiveonly 8708 and in this message the ephemeral termination is requested to create 8709 with Receiveonly mode. The ephemeral termination created in this example 8710 is EphA. MG responds with the allocated IP address 209.110.59.33 and 8711 port number 30000. 8713 Step 10 8714 MG1 to MGC: 8715 MEGACO/1 [209.110.59.34]: 25000 8716 Reply = 1236 { 8717 Context = 1 { 8718 Add = TermA, 8719 Add=EphA{ 8720 Media { 8721 Local { 8722 v=0 8723 c=IN IP4 209.110.59.33 8724 m=audio 30000 RTP/AVP 4 8725 a=recvonly 8726 } ; RTP profile for G.723 is 4 8727 } 8728 } 8729 } 8730 } 8731 } 8733 MGC generates a similar transaction towards the RGW2. The ContextID 8734 specified in the action is $. The first command adds the physical 8735 termination TermB to the newly created context. The Signal descriptor 8736 for this termination lists the ring signal of the analog line 8737 supervision package. This alerting signal is applied to the 8738 termination of the TermB. The Event descriptor specifies offhook 8739 event of the analog line supervision package. The second Add is meant 8740 to create an ephemeral termination. MGC has the local information for 8741 the ephemeral termination EphA in the RGW1. This information is passed 8742 as remote information to the RGW2. The new ephemeral termination that 8743 will be created will take these parameters as the remote SDP 8744 information. 8746 Step 11 8747 MGC to MG2: 8748 MEGACO/1 [216.33.33.61]:27000 8749 Transaction = 1237 { 8750 Context = $ { 8751 Add = TermB { Media { 8752 LocalControl {Mode = Receiveonly} }, 8753 Signals {al/ri} 8754 Events=1234{al/of}, 8756 }, 8757 Add = $ {Media { 8758 LocalControl { 8759 Mode = Receiveonly, 8760 }, 8761 Local { 8762 v=0 8763 c=IN IP4 $ 8764 m=audio $ RTP/AVP 4 8766 }, 8767 Remote { 8768 v=0 8769 c=IN IP4 209.110.59.33 8770 m=audio 30000 RTP/AVP 4 8771 } ; RTP profile for G.723 is 4 8772 } 8773 } 8774 } 8775 } 8776 } 8778 MG2 after receiving the new transaction from MGC starts processing it. 8779 It creates a new context with contextID 2. It adds the physical 8780 termination TermB to that context and start processing the descriptor 8781 specified in the command. The signal descriptor lists "ring" signal to 8782 be applied on the termination. The event descriptor lists the off 8783 hook event. The RGW2 creates a ephemeral termination with 8784 TerminationId EphB. The local information is under-specified from the 8785 MGC. The MG allocates the necessary resources for processing the media 8786 descriptor for the ephemeral termination. The MG responds to the MGC by 8787 specifying the IP address reserved for the local connection. In this 8788 example MG2 reserves IP address 207.176.47.90 and port number 40000. 8789 The MG2 responds to MGC with the following transaction reply. 8791 Step 12 8792 MG2 to MGC: 8793 MEGACO/1 [207.176.47.89]: 26000 8794 Reply = 1237 { 8795 Context = 2 { 8796 Add = TermB, 8797 Add = EphB{ 8798 Media { 8799 Local { 8800 v=0 8801 c=IN IP4 207.176.47.90 8802 m=audio 40000 RTP/AVP 4 8803 } 8804 } ; RTP profile for G723 is 4 8805 } 8806 } 8808 } 8810 The MGC waits for the UserB to go offhook. Once the UserB goes offhook, 8811 MG2 reports the notification of the offhook event to the MGC. 8813 Step 13 8814 MG2 to MGC: 8815 MEGACO/1 [207.176.47.89]: 26000 8816 Transaction = 3000 { 8817 Context = 2 { 8818 Notify = TermB {ObservedEvents =1234 { 8819 20000202T10020000:al/of}} 8820 } 8821 } 8822 The MGC responds to the MG2 with the Notify response. 8824 Step 14 8825 MGC to MG2: 8826 MEGACO/1 [216.33.33.61]: 27000 8827 Reply = 3000 { 8828 Context = 2 {Notify = TermB} 8829 } 8830 The MGC generates a transaction towards MG2 with two commands in one 8831 action. It changes the mode of both the terminations to sendrecv. The 8832 Signal descriptor of the Modify command for the first termination, 8833 stops the ring signal already applied on the termination and the event 8834 descriptor lists the onhook and flashhook events 8836 Step 15: 8837 MGC to MG2: 8838 MEGACO/1 [216.33.33.61]: 27000 8839 Transaction = 1238 { 8840 Context = 2 { 8841 Modify = TermB { 8842 Signals { } ; to turn off ringing 8843 Events = 1235 {al/on, al/fl { signals cg/dt, 8844 events dd/ce{dmap1}, al/on }}, 8845 Media { 8846 LocalControl { 8847 Mode = SendRecv, 8848 } 8849 } 8850 } 8851 Modify = EphB{ 8852 Media { 8853 LocalControl { 8854 Mode = SendRecv, 8855 } 8856 } 8857 } 8858 } 8860 The MG2 responds to the request from MGC. 8862 Step 16 8863 MG2 to MGC: 8864 MEGACO/1 [207.176.47.89]: 26000 8865 Reply = 1238 { 8866 Context = 2 {Modify = TermB , Modify = EphB} 8867 } 8869 The MGC generates message to the MG1 to stop the ringback tone and to 8870 report the remote SDP information for the ephemeral termination EphA. 8871 The mode of the two terminations TermA and EphA is set to send 8872 receive. 8874 Step 17 8875 MGC to MG1: 8876 MEGACO/1 [216.33.33.61]: 27000 8877 Transaction = 1239 { 8878 Context = 1 { 8879 Modify = TermA { 8880 Media { 8881 LocalControl { 8882 Mode = sendrecv} 8883 } 8884 } 8885 Signals { } 8886 }, 8887 Modify = EphA { 8888 Media { 8889 LocalControl { 8890 Mode = sendrecv} 8891 Remote { 8892 v=0 8893 c=IN IP4 207.176.47.90 8894 m=audio 40000 RTP/AVP 4 8895 } 8896 } ; RTP profile for G723 is 4 8897 } 8898 } 8899 } 8900 } 8901 The empty signal descriptor in the Modify command for termination 8902 TermA, stops the ringback tone at the calling end. The remote SDP 8903 information is updated for the ephemeral termination EphA. The mode 8904 is changed to send receive. MG1 responds to the MGC with the response 8905 for the Modify commands. 8907 Step 18 8908 MG1 to MGC: 8909 MEGACO/1 [209.110.59.34]: 25000 8910 Reply = 1239 { 8911 Context = 1 {Modify = TermA, Modify = EphA} 8912 } 8913 The two users can exchange media, as the RTP streams are made 8914 bi-directional. 8915 The UserB now press flash to dial the UserC number. 8916 The UserB flash event is reported to MGC using the Notify message. 8918 Step 19 8919 MG2 to MGC: 8920 MEGACO/1 [209.110.59.34]:29000 8921 Transaction = 3001 { 8922 Context = 2 { 8923 Notify = TermB {ObservedEvents =1235 { 8924 20040202T10000000:al/fl}} 8925 } 8926 } 8928 MGC generates the Notify response. 8930 Step 20 8931 MGC to MG2: 8932 MEGACO/1 [216.33.33.61]: 27000 8933 Reply = 3001 { 8934 Context = 2 {Notify = TermB} 8935 } 8936 The UserB gets the dial tone and starts dialing the digits. In this 8937 example the UserB dials the number 2804 of UserC. The dialed digits 8938 are reported to MGC using digit map completion event. The digits are 8939 reported using the Notify command. 8941 Step 21 8942 MG2 to MGC: 8943 MEGACO/1 [209.110.59.34]: 27000 8944 Transaction = 3002 { 8945 Context = 2 { 8946 Notify = TermB {Observed Events =1235 { 8947 20040202T10010000:dd/ce{ds="2804",Meth=FM}}} 8948 } 8949 } 8951 MGC after receiving the Notify command responds back with the Notify 8952 response. 8954 Step 22 8955 MGC to MG2: 8956 MEGACO/1 [216.33.33.61]: 27000 8957 Reply = 3002 { 8958 Context = 2 {Notify = TermB} 8959 } 8960 The UserC is alerted with ring signal to indicate that a call is to be 8961 received. The Add command for the physical termination TermC with 8962 signal descriptor allows the ring signal to be applied on the 8963 termination. The ephemeral termination is also requested to be created 8964 with under specified Local SDP information and fully specified Remote 8965 SDP information. 8967 Step 23: 8968 MGC to MG3: 8969 MEGACO/1 [216.33.33.61]: 27000 8970 Transaction = 1240 { 8971 Context = $ { 8972 Add = TermC { 8973 Signals { al/ri } 8974 Events = 1111{ al/of embedded { al/on } } 8975 } 8976 Add = $ { 8977 Media { 8978 { 8979 LocalControl { 8980 Mode = ReceiveOnly, 8981 }, 8982 Local { 8983 v=0 8984 c=IN IP4 $ 8985 m=audio $ RTP/AVP 4 8986 } 8987 Remote { 8988 v=0 8989 c=IN IP4 207.176.47.90 8990 m=audio 40000 RTP/AVP 4 8991 } 8992 } ; RTP profile for G723 is 4 8993 } 8994 } 8995 } 8996 } 8998 In this example the SDP local information connection fields IP 8999 address, the media field port numbers are unspecified. The MG3 in its 9000 response indicates the IPAddress and port number used. The contextID 9001 is also not specified indicating the creation of a new context. In 9002 this example the MG3 creates a context with contextID 3. The physical 9003 termination TermA is added to context 1. The mode of the physical 9004 termination was earlier set to Receiveonly and in this message the 9005 ephemeral termination is requested to create with Receiveonly mode. 9006 The ephemeral termination created in this example is EphC. MG3 responds 9007 with the allocated IP address 192.168.0.160 and port number 50000. 9009 Step 24 9010 MG3 to MGC: 9011 MEGACO/1 [209.110.59.35]: 25000 9012 Reply = 1240 { 9013 Context = 3 { 9014 Add = TermC, 9015 Add=EphC{ 9016 Media { 9017 Local { 9018 v=0 9019 c=IN IP4 192.168.0.160 9020 m=audio 50000 RTP/AVP 4 9021 a=recvonly 9022 } ; RTP profile for G.723 is 4 9023 } 9024 } 9025 } 9026 } 9027 } 9029 The MGC generates ring back tone towards the UserB to indicate that 9030 altering signal has been sent to the called party UserC. 9031 Step 25 9032 MGC to MG2: 9033 MEGACO/1 [216.33.33.61]: 27000 9034 Transaction = 1241 { 9035 Context = 2 { 9036 Modify = TermB { 9037 Signals { cg/rt } 9038 } 9039 } 9040 } 9041 } 9042 The MG2 after receiving the Modify command applies the ring back tone 9043 specified in the signals descriptor. The Modify response is sent back 9044 to MGC. 9046 Step 26 9047 MG2 to MGC: 9048 MEGACO/1 [209.110.59.34]: 25000 9049 Reply = 1241 { 9050 Context = 2 { 9051 Modify= TermB, 9052 } 9053 } 9054 The UserC after receiving the ring signal goes offhook. The offhook 9055 event is reported to MGC in the Notify command. 9057 Step 27 9058 MG3 to MGC: 9059 MEGACO/1 [209.110.59.35]:25000 9060 Transaction = 4001 { 9061 Context = 3 { 9062 Notify = TermC {ObservedEvents =1111 { 9063 20050202T10000000:al/of}} 9064 } 9065 } 9067 MGC generates the Notify response and responds with further messages 9068 towards the MG that generated the Notify command. 9070 Step 28 9071 MGC to MG3: 9072 MEGACO/1 [216.33.33.61]: 27000 9073 Reply = 4001 { 9074 Context = 3 {Notify = TermC} 9075 } 9076 The MGC now updates the UserC connected to the Residential gateway 3 9077 with modify command to change the mode of the terminations set to 9078 sendrecv. 9080 Step 29: 9081 MGC to MG3: 9082 MEGACO/1 [216.33.33.61]: 27000 9083 Transaction = 1242 { 9084 Context = 3 { 9085 Modify = TermC { 9086 Signals { } ; to turn off ringing 9087 Events = 1235 {al/on}, 9088 Media { 9089 LocalControl { 9090 Mode = SendRecv, 9091 } 9092 } 9093 } 9094 Modify = EphC{ 9095 Media { 9096 LocalControl { 9097 Mode = SendRecv, 9098 } 9099 } 9100 } 9101 } 9102 The Residential gateway responds with the Modify response command. 9104 Step 30 9105 MG3 to MGC: 9106 MEGACO/1 [209.110.59.35]: 25000 9107 Reply = 1242 { 9108 Context = 3 {Modify = TermC , Modify = EphC} 9109 } 9110 The MGC now updates the UserB connected to the Residential gateway 2 9111 with the local SDP information of UserC as remote SDP information. The 9112 Modify command with the remote SDP information is sent to RGW2, for the 9113 ephemeral termination. 9115 Step 31 9116 MGC to MG2: 9117 MEGACO/1 [216.33.33.61]: 27000 9118 Transaction = 1243 { 9119 Context = 2 { 9120 Modify = TermB { 9121 Media{ 9122 LocalControl{ mode = sendrecv }, 9123 Remote { 9124 v=0 9125 c=IN IP4 192.168.0.160 9126 m=audio 50000 RTP/AVP 4 9127 } ; RTP profile for G.723 is 4 9128 } 9129 } 9130 } 9131 } 9132 The RGW2 responds with the Modify response. 9134 Step 32 9135 MG2 to MGC: 9136 MEGACO/1 [207.176.47.89]: 26000 9137 Reply = 1243 { 9138 Context = 2 {Modify = TermB } 9139 } 9141 The RGW2 updates the remote SDP information and generates the Modify 9142 response towards MGC. The Media path is established between UserB and 9143 UserC. The two users can be in conversation. The intention of this call 9144 scenario is to illustrate the call that is initiated from UserA to 9145 UserC. Now the UserB is in connection with UserC and after UserB goes 9146 onhook the MGC modifies the remote SDP information of both 9147 UserA and UserB. This makes the remote SDP of UserA point to 9148 UserC and remote SDP information of UserA point to UserC. When the 9149 UserB goes onhook the event is reported to MGC in the Notify command. 9151 Step 33 9152 MG2 to MGC: 9153 MEGACO/1 [207.176.47.89]:26000 9154 Transaction = 3003 { 9155 Context = 2 { 9156 Notify = TermB {ObservedEvents =1235 { 9157 20060202T10000000:al/on}} 9158 } 9159 } 9161 MGC generates the Notify response and responds with further messages 9162 towards the MG that generated the Notify command. 9164 Step 34 9165 MGC to MG2: 9166 MEGACO/1 [216.33.33.61]: 27000 9167 Reply = 3003 { 9168 Context = 2 {Notify = TermB} 9169 } 9170 The MGC also subtracts the terminations TermB and EphB from context2. 9171 The context also gets destroyed after deletion of the last termination. 9172 The Subtract commands are generated in a single transaction. 9174 Step 35 9175 MGC to MG2: 9176 MEGACO/1 [216.33.33.61]: 27000 9177 Transaction = 1244 { 9178 Context = 2 { 9179 Subtract = TermB {Audit{ }}, 9180 Subtract = EphB {Audit{Statistics}} 9181 } 9182 } 9183 The MG2 responds to the subtract commands generated by MGC. 9185 Step 36 9186 MG2 to MGC: 9187 MEGACO/1 [209.176.47.89]:26000 9188 Reply = 1244 { 9189 Context = 2 { 9190 Subtract = TermB 9191 Subtract = EphB { 9192 Statistics { 9193 rtp/ps=987, ; packets sent 9194 nt/os=65432, ; octets sent 9195 rtp/pr=1234, ; packets received 9196 nt/or=56789, ; octets received 9197 rtp/pl=10, ; % packets lost 9198 rtp/jit=30, 9199 rtp/delay=30 ; average latency 9200 } 9201 } 9202 } 9203 } 9204 UserB is not in connection with UserA and UserC. The MGC 9205 now initiates the Modify command towards UserA and UserC. 9207 Step 37 9208 MGC to MG1: 9209 MEGACO/1 [216.33.33.61]: 27000 9210 Transaction = 1245 { 9211 Context = 1 { 9212 Modify = TermA { 9213 Media { 9214 LocalControl { 9215 Mode = sendrecv} 9216 } 9217 } 9218 }, 9219 Modify = EphA { 9220 Media { 9221 LocalControl { 9222 Mode = sendrecv} 9223 Remote { 9224 v=0 9225 c=IN IP4 192.168.0.160 9226 m=audio 50000 RTP/AVP 4 9227 } 9228 } ; RTP profile for G723 is 4 9229 } 9230 } 9231 } 9232 } 9233 The remote SDP information is updated for the ephemeral termination 9234 EphA. The mode is changed to send receive. MG1 responds to the MGC 9235 with the response for the Modify commands. 9237 Step 38 9238 MG1 to MGC: 9239 MEGACO/1 [209.110.59.34]: 25000 9240 Reply = 1245 { 9241 Context = 1 {Modify = TermA, Modify = EphA} 9242 } 9244 Similar command is generated towards UserC connected to RGW3. 9245 Step 39 9246 MGC to MG3: 9247 MEGACO/1 [216.33.33.61]: 27000 9248 Transaction = 1246 { 9249 Context = 3 { 9250 Modify = TermC { 9251 Media { 9252 LocalControl { 9253 Mode = sendrecv} 9254 } 9255 } 9256 }, 9257 Modify = EphC { 9258 Media { 9259 LocalControl { 9260 Mode = sendrecv} 9261 Remote { 9262 v=0 9263 c=IN IP4 209.110.59.33 9264 m=audio 30000 RTP/AVP 4 9265 } 9266 } ; RTP profile for G723 is 4 9268 } 9269 } 9270 } 9271 } 9272 The remote SDP information is updated for the ephemeral termination 9273 EphC. The mode is changed to send receive. MG3 responds to the MGC 9274 with the response for the Modify commands. 9276 Step 40 9277 MG3 to MGC: 9278 MEGACO/1 [209.110.59.35]: 25000 9279 Reply = 1246 { 9280 Context = 3 {Modify = TermC, Modify = EphC} 9281 } 9282 The users UserA and UserC can be in conversation as the modes are 9283 changed to sendrecv. The call is transferred completely from UserB to 9284 UserC. The call can be terminated by any of the users. The UserA after 9285 the conversation goes onhook indicating the tearing down of the call. 9286 The same is reported in the Notify command from MG1 to MGC. 9288 Step 41 9289 MG1 to MGC: 9290 MEGACO/1 [209.110.59.34]:25000 9291 Transaction = 2003 { 9292 Context = 1 { 9293 Notify = TermA {ObservedEvents =1112 { 9294 20010202T10030000:al/on} 9295 } 9296 } 9297 } 9298 The MGC responds to the MG1s Notify message. 9300 Step 42 9301 MGC to RGW1: 9302 MEGACO/1 [216.33.33.61]:27000 9303 Reply = 2003 { 9304 Context = 1 { 9305 Notify = TermA 9306 } 9307 } 9309 The MGC generates a Modify command towards the RGW3 for applying 9310 busy tone to the called subscriber. The mode of both terminations is 9311 set to receive only. 9313 Step 43 9314 MGC to RGW3: 9315 MEGACO/1 [216.33.33.61]: 27000 9316 Transaction = 1247 { 9317 Context = 3 { 9318 Modify = TermC { 9319 Signals {cg/bt} 9320 Media { 9321 LocalControl { 9322 Mode = recvonly} 9323 } 9324 }, 9325 Modify = EphC { 9326 Media { 9327 LocalControl { 9328 Mode = recvonly} 9329 } 9330 } 9331 } 9332 } 9333 } 9335 The MG3 responds to this modify request. 9337 Step 44 9338 MG3 to MGC: 9339 MEGACO/1 [209.110.59.35]: 25000 9340 Reply = 1247 { 9341 Context = 3 { 9342 Modify= TermC, Modify = EphC} 9343 } 9345 The MGC generates a transaction with two subtracts commands one for 9346 physical and other for ephemeral terminations 9348 Step 45: 9349 MGC to MG1 9350 MEGACO/1 [216.33.33.61]: 27000 9351 Transaction = 1248 { 9352 Context = 1 { 9353 Subtract = TermA {Audit{ }}, 9354 Subtract = EphA {Audit{Statistics}} 9355 } 9356 } 9357 The MG subtracts the two terminations from the context. The context 9358 itself is deleted with the subtract of the last termination from it. 9359 The MG1 responds to this transaction from MGC with statistics on 9360 ephemeral termination. 9362 Step 46 9363 MG1 to MGC: 9364 MEGACO/1 [209.110.59.34]:25000 9365 Reply = 1248 { 9366 Context = 1 { 9367 Subtract = TermA 9368 Subtract = EphA { 9369 Statistics { 9370 rtp/ps=1234, ; packets sent 9371 nt/os=56789, ; octets sent 9372 rtp/pr=987, ; packets received 9373 nt/or=65432, ; octets received 9374 rtp/pl=10, ; % packets lost 9375 rtp/jit=30, 9376 rtp/delay=30 ; average latency 9377 } 9378 } 9379 } 9380 } 9382 Step 47 9383 MG3 to MGC: 9384 MEGACO/1 [209.110.59.35]:25000 9385 Transaction = 4002 { 9386 Context = 3 { 9387 Notify = TermC {ObservedEvents =1235 { 9388 20050202T10000000:al/on}} 9389 } 9390 } 9392 MGC generates the Notify response and responds with further messages 9393 towards the MG that generated the Notify command. 9395 Step 48 9396 MGC to MG3: 9397 MEGACO/1 [216.33.33.61]: 27000 9398 Reply = 4002 { 9399 Context = 3 {Notify = TermC} 9400 } 9402 The MGC generates Subtract command towards MG3. 9404 Step 49 9405 MGC to MG3: 9406 MEGACO/1 [216.33.33.61]: 27000 9407 Transaction = 1249 { 9408 Context = 3 { 9409 Subtract = TermC {Audit{ }}, 9410 Subtract = EphC {Audit{Statistics}} 9411 } 9412 } 9413 The MG3 responds to the subtract commands generated by MGC. 9415 Step 50 9416 MG3 to MGC: 9417 MEGACO/1 [209.110.59.34]:28000 9418 Reply = 1249 { 9419 Context = 3 { 9420 Subtract = TermC 9421 Subtract = EphC { 9422 Statistics { 9423 rtp/ps=987, ; packets sent 9424 nt/os=65432, ; octets sent 9425 rtp/pr=1234, ; packets received 9426 nt/or=56789, ; octets received 9427 rtp/pl=10, ; % packets lost 9428 rtp/jit=30, 9429 rtp/delay=30 ; average latency 9430 } 9431 } 9432 } 9433 } 9434 The MGC generates the message as shown in step 1 to all the three gateways, 9435 to enable the users to participate/initiate in further calls. 9437 8.2 Call waiting 9439 The call waiting feature in Telephone networks enables a user to 9440 receive two calls simultaneously. The user can switch between the calls. 9441 In this example UserA calls UserB and when the conversation is taking 9442 place UserC calls UserB. The UserB hears a call waiting tone and 9443 switches to this new call using flash hook. UserC disconnects the call 9444 and the UserB continues his conversation with UserA. The MGC should 9445 support such features and UserB should subscribe for this feature. The 9446 figure above suggests that all the three MG's are controlled by the 9447 same MGC. Even though this many not true in real world this assumption 9448 holds good for illustration purposes. 9450 _____________________________________________________________________ 9451 | | | 9452 MG1 | MGC | MG2 | MG3 9453 ________________|_______________|________________|____________________ 9454 | | | | 9455 |<----------------|-------------->| | 9456 |Initial Modify | Initial Modify| | 9457 | |-------------------------------->| 9458 | | Initial Modify | 9459 |---------------->|<--------------| | 9460 |Modify Response | Modify Resp | | 9461 | |<--------------------------------| 9462 | | Modify Response | 9463 |---------------->| | | 9464 | Notify OffHook | | | 9465 |<----------------| | | 9466 |Notify Response | | | 9467 |<----------------| | | 9468 |Modify ED:dd/ce{DmapName=dmap1},al/on SD:cg/dt | 9470 <-----|---------------->| | | 9471 Dial | Modify Resp | | | 9472 Tone | | | | 9473 ------>| | | | 9474 Digits |---------------->| | | 9475 |Notify Digits | | | 9476 |<----------------| | | 9477 |Notify Response | | | 9478 |<----------------|-------------->| | 9479 |Modify ringback | Modify Ring | | 9480 <------|---------------->|<--------------| | 9481 ring | Modify Resp | Modify Resp | | 9482 back | |<--------------| | 9483 | |Notify OffHook | | 9484 |<----------------|-------------->| | 9485 | Add Phy |Notify Resp | | 9486 |Add Eph Local Unspecified | | 9487 |---------------->| | | 9488 |Add Phy Resp | | | 9489 |Add Eph Resp Local specified | | 9490 | |-------------->| | 9491 | |Add Phy | | 9492 | |Add Eph Local unspecified | 9493 | | Remote Specified | 9494 | |<--------------| | 9495 | | Add Phy Resp | | 9496 | | Add Eph Resp Local specified | 9497 |<----------------| | | 9498 | Modify Eph Remote Specified | | 9499 |---------------->| | | 9500 | Modify Resp | | | 9501 |/-------------------------------\| | 9502 | RTP MEDIA | | 9503 |\-------------------------------/| | 9504 | |<--------------------------------| 9505 | | Notify OffHook | 9506 | |<--------------------------------| 9507 | | Notify Resp | 9508 | |<--------------------------------| 9509 | | Notify Digits | 9510 | |-------------------------------->| 9511 | | Notify Response | 9512 | |-------------------------------->| 9513 | | Add Phy SD:cg/rt | 9514 | | Add Eph Local Unspecified| 9515 | | Remote Specified | 9516 | |<--------------------------------| 9517 | | Add Phy Resp | 9518 | | Add Eph Resp Local SPecified 9519 | |-------------->| | 9520 | |Modify SD:callwaiting tone | 9521 | |<--------------| | 9522 | |Modify Resp | | 9523 | |<--------------| | 9524 | | Notify Flash | | 9525 |<----------------| | | 9526 |Modify Eph recvonly | | 9527 | |-------------->| | 9528 | | Notify Resp | | 9529 |---------------->| | | 9530 | Modify Resp |-------------->| | 9531 | | Modify Eph | | 9532 | |<--------------| | 9533 | | |/---------------\| 9534 | | | RTP MEDIA | 9535 | | |\---------------/| 9536 | |<--------------------------------| 9537 | | Notify OnHook | 9538 | |-------------------------------->| 9539 | | Notify Resp | 9540 | |-------------->| | 9541 | | Modify SD:cg/bt | 9542 | |<--------------| | 9543 | | Modify Resp | | 9544 | |<--------------| | 9545 | | Notify Flash | | 9546 | |-------------->| | 9547 | | Notify Resp | | 9548 |<----------------| | | 9549 | Modify Eph SendRecv | | 9550 |---------------->| | | 9551 | Modify Resp |-------------->| | 9552 | | Modify Eph | | 9553 | |<--------------| | 9554 | | Modify Resp | | 9555 |/-------------------------------\| | 9556 | RTP Media | | 9557 |\-------------------------------/| | 9558 |---------------->| | | 9559 | Notify OnHook | | | 9560 |<----------------| | | 9561 | Notify Resp | | | 9562 | |-------------->| | 9563 | | Modify Phy SD:cg/bt | 9564 | |<--------------| | 9565 | | Modify Resp | | 9566 |<----------------| | | 9567 | Sub TermA | | | 9568 | Sub EphA | | | 9569 |---------------->| | | 9570 | Sub TermA Resp | | | 9571 | Sub EphA Resp Statistics | | 9572 | |<--------------| | 9573 | | Notify OnHook | | 9574 | |-------------->| | 9575 | | Notify Resp | | 9576 | |-------------->| | 9577 | | Sub TermB | | 9578 | | Sub EphB | | 9579 | |<--------------| | 9580 | | Sub TermB Resp| | 9581 | | Sub EphB Resp Statistics | 9582 _______|_________________|_______________|_________________| 9584 The MGC generates the Modify message towards all the three Residential 9585 gateways to check for off hook on the terminations. (A wildcard 9586 command may also be used in this scenario but for simplicity we consider 9587 only command to specific terminations). The MGC 9588 in NULL context generated the command to the specific termination 9589 TermA. The off hook event of the analog supervision package is used 9590 here. The request identifier specified here in the example is 1111. 9591 The mode of the termination is set to receive only. The stream 9592 parameter is used with only the Local control descriptor. 9594 Step 1 9595 MGC to RGW1: 9596 MEGACO/1 [216.33.33.61]: 27000 9597 Transaction = 1234 { 9598 Context = - { 9599 Modify = TermA { 9600 Media { 9601 LocalControl { 9602 Mode = ReceiveOnly} 9603 } , 9604 Events = 1111 {al/of} 9605 } 9606 } 9607 } 9609 MG after receiving the command from MGC accepts it and responds with 9610 the transaction reply. Here for only MG1 is shown to generate the 9611 response. In fact all the three RGW generates the response. 9613 Step 2 9615 MG1 to MGC: 9616 MEGACO/1 [209.110.59.34]:25000 9617 Reply = 1234 { 9618 Context = - {Modify = TermA} 9619 } 9621 In this example User A goes off hook. This event is detected by the 9622 RGW1 and constructs the Notify message to the MGC. The MG uses the same 9623 request id (1111) sent by the MGC in its initial command. The 9624 timestamp of the event detected is also passed as a parameter to the 9625 observed event. 9627 Step 3 9628 MG1 to MGC: 9629 MEGACO/1 [209.110.59.34]:25000 9630 Transaction = 2000 { 9631 Context = - { 9632 Notify = TermA {ObservedEvents =1111 { 9633 20010202T10000000:al/of}} 9634 } 9635 } 9637 MGC generates the Notify response and responds with further messages 9638 towards the MG that generated the Notify command. 9640 Step 4 9641 MGC to MG1: 9642 MEGACO/1 [216.33.33.61]: 27000 9643 Reply = 2000 { 9644 Context = - {Notify = TermA} 9645 } 9647 The MGC in the following command issues a MODIFY command. The Modify 9648 command contains a signal descriptor for the application of dial tone 9649 to the user. The digit map descriptor here is used to configure a 9650 digit map on the termination. The digit map name used in the example 9651 is Dmap1 and the dial patter is 2XXX. The event descriptor lists digit 9652 map completion event of the DTMF detection package and onhook of the 9653 analog line supervision package. The request id specified in the event 9654 descriptor is 1112. 9656 Step 5 9657 MGC to MG1: 9658 MEGACO/1 [216.33.33.61]: 27000 9659 Transaction = 1235 { 9660 Context = - { 9661 Modify = TermA { 9662 Signals {cg/dt}, 9663 DigitMap= Dmap1{(2XXX)} 9664 Events = 1112 { 9665 al/on, dd/ce {DigitMap=Dmap1} 9666 }, 9667 } 9668 } 9669 } 9671 MG after receiving validation responds the Modify command responds the 9672 MGC and starts processing the descriptors listed. 9674 Step 6 9675 MG1 to MGC: 9676 MEGACO/1 [209.110.59.34]: 25000 9677 Reply = 1235 { 9678 Context = - {Modify = TermA} 9679 } 9681 The descriptors are processed in the order that is specified by the MGC. 9682 In this example the order of descriptor is signal descriptor, digit 9683 map descriptor followed by Events descriptor. The MG first processes 9684 the signal descriptor. The dial tone is applied to the Termination 9685 specified. The Digit map is updated in the Database of the termination. 9686 The Digit map is ACTIVE on the termination as the digit map 9687 completion event is listed in the events descriptor with the digit map 9688 name. A digit map is activated whenever a new event descriptor is 9689 applied to the termination or embedded event descriptor is activated, 9690 and that event descriptor contains a digit map completion event which 9691 itself contains a digit map parameter. UserA after receiving the dial 9692 tone starts dialing digits. In this example we will not dwell into the 9693 different possible cases of digit dialing by the user. The digits dialed 9694 by user match with the digitmap pattern. Lets assume that the user has 9695 dialed 2992. MG detects the digits dialed and reports the same as parameter 9696 to the digit map completion event. A notify command is generated from MG1 to 9697 MGC. The MG again used the same request identifier as specified by the MGC. 9699 Step 7 9700 MG1 to MGC: 9701 MEGACO/1 [209.110.59.34]: 25000 9702 Transaction = 2001 { 9703 Context = - { 9704 Notify = TermA {ObservedEvents =1112 { 9705 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 9706 } 9707 } 9709 MGC after receiving the Notify command responds back with the Notify 9710 response. 9711 Step 8 9712 MGC to MG1: 9713 MEGACO/1 [216.33.33.61]: 27000 9714 Reply = 2001 { 9715 Context = - {Notify = TermA} 9716 } 9718 MGC after receiving the Notify command starts analyzing the dialed 9719 digits. In this example the called subscriber is connected to the 9720 RGW2, which is again controlled by the same MGC. The MGC generates a 9721 transaction with two commands clubbed into the same Action. The first 9722 command is to create a new context and add the physical termination 9723 TermA into it. As the MGC is aware that the destination user UserB is 9724 free it indicates MG1 to apply ringback tone to the termination of 9725 UserA. The second command is generated to create an ephemeral 9726 termination and add the created termination in the same context that 9727 was created as a result of the earlier command. Here we assumed a single 9728 set of SDP information indicating that Reserve group is not used. The 9729 Reserve Value feature is also not used. 9731 Step 9 9732 MGC to MG1: 9733 MEGACO/1 [216.33.33.61]: 27000 9734 Transaction = 1236 { 9735 Context = $ { 9736 Add = TermA { 9737 Signals { cg/rt } 9738 } 9739 Add = $ { 9740 Media { 9741 { 9742 LocalControl { 9743 Mode = ReceiveOnly, 9744 }, 9745 Local { 9746 v=0 9747 c=IN IP4 $ 9748 m=audio $ RTP/AVP 4 9749 } 9750 } 9751 } 9752 } 9753 } 9755 In this example the connection fields IP address, the media field port 9756 number are unspecified. The MG in its response indicates the IPAddress 9757 and port number used. The contextID is also not specified indicating 9758 the creation of a new context. In this example the MG creates a context 9759 with contextID 1. The physical termination TermA is added to context 1. 9760 The mode of the physical termination was earlier set to Receiveonly 9761 and in this message the ephemeral termination is requested to create 9762 with Receiveonly mode. The ephemeral termination created in this 9763 example is EphA. MG responds with the allocated IP address 9764 209.110.59.33 and port number 30000. 9766 Step 10 9767 MG1 to MGC: 9768 MEGACO/1 [209.110.59.34]: 25000 9769 Reply = 1236 { 9770 Context = 1 { 9771 Add = TermA, 9772 Add=EphA{ 9773 Media { 9774 Local { 9775 v=0 9776 c=IN IP4 209.110.59.33 9777 m=audio 30000 RTP/AVP 4 9778 a=recvonly 9779 } ; RTP profile for G.723 is 4 9780 } 9781 } 9782 } 9783 } 9784 } 9786 MGC generates a similar transaction towards the RGW2. The ContextID 9787 specified in the action is $. The first command adds the physical 9788 termination TermB to the newly created context. The Signal descriptor 9789 for this termination lists the ring signal of the analog line 9790 supervision package. This alerting signal is applied to the 9791 termination of the TermB. The Event descriptor specifies offhook event 9792 of the analog line supervision package. The second Add is meant to 9793 create an ephemeral termination. MGC has the local information for the 9794 ephemeral termination EphA in the RGW1. This information is passed as 9795 remote information to the RGW2. The new ephemeral termination that 9796 will be created will take these parameters as the remote SDP 9797 information. 9799 Step 11 9800 MGC to MG2: 9801 MEGACO/1 [216.33.33.61]:27000 9802 Transaction = 1237 { 9803 Context = $ { 9804 Add = TermB { Media { 9805 LocalControl {Mode = Receiveonly} }, 9806 Signals {al/ri} 9807 Events=1234{al/of}, 9808 }, 9809 Add = $ {Media { 9810 LocalControl { 9811 Mode = Receiveonly, 9812 }, 9813 Local { 9814 v=0 9815 c=IN IP4 $ 9816 m=audio $ RTP/AVP 4 9818 }, 9819 Remote { 9820 v=0 9821 c=IN IP4 209.110.59.33 9822 m=audio 30000 RTP/AVP 4 9823 } ; RTP profile for G.723 is 4 9824 } 9825 } 9826 } 9827 } 9828 } 9830 MG2, after receiving the new transaction from MGC starts processing it. 9831 It creates a new context with contextID 2. It adds the physical 9832 termination TermB to that context and start processing the descriptor 9833 specified in the command. The signal descriptor lists "ring" signal to 9834 be applied on the termination. The event descriptor lists the off 9835 hook event. The RGW2 creates an ephemeral termination with TerminationId 9836 EphB. The local information is under-specified from the MGC. The MG 9837 allocates the necessary resources for processing the media descriptor 9838 for the ephemeral termination. The MG responds to the MGC by specifying 9839 the IP address reserved for the local connection. In this example MG2 9840 reserves IP address 207.176.47.90 and port number 40000. The MG2 9841 responds to MGC with the following transaction reply. 9843 Step 12 9844 MG2 to MGC: 9845 MEGACO/1 [207.176.47.89]: 26000 9846 Reply = 1237 { 9847 Context = 2 { 9848 Add = TermB, 9849 Add = EphB{ 9850 Media { 9851 Local { 9852 v=0 9853 c=IN IP4 207.176.47.90 9854 m=audio 40000 RTP/AVP 4 9855 } 9856 } ; RTP profile for G723 is 4 9857 } 9858 } 9859 } 9861 The MGC waits for the UserB to go offhook. Once the UserB goes offhook, 9862 MG2 reports the notification of the offhook event to the MGC. 9864 Step 13 9865 MG2 to MGC: 9866 MEGACO/1 [207.176.47.89]: 26000 9867 Transaction = 3000 { 9868 Context = 2 { 9869 Notify = TermB {ObservedEvents =1234 { 9870 20000202T10020000:al/of}} 9871 } 9872 } 9873 The MGC responds to the MG2 with the Notify response. 9875 Step 14 9876 MGC to MG2: 9877 MEGACO/1 [216.33.33.61]: 27000 9878 Reply = 3000 { 9879 Context = 2 {Notify = TermB} 9880 } 9881 The MGC generates a transaction towards MG2 with two commands in one 9882 action. It changes the mode of both the terminations to sendrecv. The 9883 Signal descriptor of the Modify command for the first termination, 9884 stops the ring signal already applied on the termination and the event 9885 descriptor lists the onhook event. 9887 Step 15: 9888 MGC to MG2: 9889 MEGACO/1 [216.33.33.61]: 27000 9890 Transaction = 1238 { 9891 Context = 2 { 9892 Modify = TermB { 9893 Signals { } ; to turn off ringing 9894 Events = 1235 {al/on}, 9895 Media { 9896 LocalControl { 9897 Mode = SendRecv, 9898 } 9899 } 9900 } 9901 Modify = EphB{ 9902 Media { 9903 LocalControl { 9904 Mode = SendRecv, 9905 } 9906 } 9907 } 9908 } 9910 The MG2 responds to the request from MGC. 9912 Step 16 9913 MG2 to MGC: 9914 MEGACO/1 [207.176.47.89]: 26000 9915 Reply = 1238 { 9916 Context = 2 {Modify = TermB , Modify = EphB} 9917 } 9919 The MGC generates a message to the MG1 to stop the ringback tone and to 9920 report the remote SDP information for the ephemeral termination EphA. 9921 The mode of the two terminations TermA and EphA is set to send receive. 9923 Step 17 9924 MGC to MG1: 9926 MEGACO/1 [216.33.33.61]: 27000 9927 Transaction = 1239 { 9928 Context = 1 { 9929 Modify = TermA { 9930 Media { 9931 LocalControl { 9932 Mode = sendrecv} 9933 } 9934 } 9935 Signals { } 9936 }, 9937 Modify = EphA { 9938 Media { 9939 LocalControl { 9940 Mode = sendrecv} 9941 Remote { 9942 v=0 9943 c=IN IP4 207.176.47.90 9944 m=audio 40000 RTP/AVP 4 9945 } 9946 } ; RTP profile for G723 is 4 9947 } 9948 } 9949 } 9950 } 9951 The empty signal descriptor in the Modify command for termination 9952 TermA, stops the ringback tone at the calling end. The remote SDP 9953 information is updated for the ephemeral termination EphA. The mode is 9954 changed to send receive. MG1 responds to the MGC with the response for 9955 the Modify commands. 9957 Step 18 9958 MG1 to MGC: 9959 MEGACO/1 [209.110.59.34]: 25000 9960 Reply = 1239 { 9961 Context = 1 {Modify = TermA, Modify = EphA} 9962 } 9963 The two users can exchange media as the RTP streams are made 9964 bi-directional. Now UserC goes offhook to initiate a call towards 9965 UserB. The Residential gateway reports the Offhook event to MGC through 9966 the Notify message. 9968 Step 19 9969 MG3 to MGC: 9970 MEGACO/1 [209.110.60.35]:25000 9971 Transaction = 4000 { 9972 Context = - { 9973 Notify = TermC {ObservedEvents =1111 { 9974 20040202T10000000:al/of}} 9975 } 9976 } 9978 MGC generates the Notify response. 9980 Step 20 9981 MGC to MG3: 9982 MEGACO/1 [216.33.33.61]: 27000 9983 Reply = 4000 { 9984 Context = - {Notify = TermC} 9985 } 9987 The MGC in the following command issues a MODIFY command. The Modify 9988 command contains a signal descriptor for the application of dial tone 9989 to the user. The digit map descriptor here is used to configure a 9990 digit map on the termination. The digit map name used in the example is 9991 Dmap1 and the dial patter is 2XXX. The event descriptor lists digit map 9992 completion event of the DTMF detection package and onhook of the analog 9993 line supervision package. The request id specified in the event 9994 descriptor is 1112. 9996 Step 21 9997 MGC to MG3: 9998 MEGACO/1 [216.33.33.61]: 27000 9999 Transaction = 1240 { 10000 Context = - { 10001 Modify = TermC { 10002 Signals {cg/dt}, 10003 DigitMap= Dmap1{(2XXX)} 10004 Events = 1112 { 10005 al/on, dd/ce {DigitMap=Dmap1} 10006 }, 10007 } 10008 } 10009 } 10011 MG after receiving the Modify command after validation responds to the 10012 MGC and starts processing the descriptors listed. 10014 Step 22 10015 MG3 to MGC: 10016 MEGACO/1 [209.110.60.35]: 25000 10017 Reply = 1240 { 10018 Context = - {Modify = TermC} 10019 } 10020 The Media gateway applies dial tone and waits for the user to enter the 10021 digits. The UserC dials digits 2992. The same is reported to MGC 10022 through the Notify command. 10024 Step 23 10025 MG3 to MGC: 10026 MEGACO/1 [209.110.60.35]: 25000 10027 Transaction = 4001 { 10028 Context = - { 10029 Notify = TermC {ObservedEvents =1112 { 10030 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 10031 } 10032 } 10034 MGC after receiving the Notify command responds back with the Notify 10035 response. 10037 Step 24 10038 MGC to MG3: 10039 MEGACO/1 [216.33.33.61]: 27000 10040 Reply = 4001 { 10041 Context = - {Notify = TermC} 10042 } 10044 The MGC after analyzing the finds that another call is waiting for 10045 UserB. Before generating any further commands to UserB, MGC generates 10046 ADD command for physical and to create ephemeral termination towards 10047 UserC in RGW3. In the Remote SDP information MGC provides the Local 10048 SDP information of UserB. The Local SDP information of UserC is left 10049 underspecified to enable the RGW3 choose those values. 10051 Step 25 10052 MGC to MG3: 10053 MEGACO/1 [216.33.33.61]:27000 10054 Transaction = 1241 { 10055 Context = $ { 10056 Add = TermC { Media { 10057 LocalControl {Mode = Receiveonly} }, 10058 Signals {al/rt} 10059 Events=1234{al/of}, 10060 }, 10061 Add = $ {Media { 10062 LocalControl { 10063 Mode = Receiveonly, 10064 }, 10065 Local { 10066 v=0 10067 c=IN IP4 $ 10068 m=audio $ RTP/AVP 4 10070 }, 10071 Remote { 10072 v=0 10073 c=IN IP4 207.176.47.90 10074 m=audio 40000 RTP/AVP 4 10075 } ; RTP profile for G.723 is 4 10076 } 10078 } 10079 } 10080 } 10081 } 10083 MG3 after receiving the new transaction from MGC starts processing it. 10084 It creates a new context with contextID 3. It adds the physical 10085 termination TermB to that context and start processing the descriptor 10086 specified in the command. The signal descriptor lists "ringback" 10087 signal to be applied on the termination. The event descriptor lists 10088 the off hook event. The RGW3 creates a ephemeral termination with 10089 TerminationId EphC. The local information is under-specified from the 10090 MGC. The MG allocates the necessary resources for processing the media 10091 descriptor for the ephemeral termination. The MG responds to the MGC by 10092 specifying the IP address reserved for the local connection. In this 10093 example MG2 reserves IP address 192.168.0.160 and port number 50000. 10094 The MG3 responds to MGC with the following transaction reply. 10096 Step 26 10097 MG3 to MGC: 10098 MEGACO/1 [209.110.60.35]: 25000 10099 Reply = 1241 { 10100 Context = 3 { 10101 Add = TermC, 10102 Add = EphC{ 10103 Media { 10104 Local { 10105 v=0 10106 c=IN IP4 192.168.0.160 10107 m=audio 50000 RTP/AVP 4 10108 } 10109 } ; RTP profile for G723 is 4 10110 } 10111 } 10112 } 10114 If generates a Modify command to the UserB with call waiting tone in 10115 the Signal Descriptor. 10117 Step 27 10118 MGC to MG2: 10119 MEGACO/1 [216.33.33.61]:26000 10120 Transaction = 1242 { 10121 Context = 2 { 10122 Modify = TermB { Media { 10123 LocalControl {Mode = SendRecv} }, 10124 Signals {cg/cw} 10125 Events=1234{al/fl, al/on}, 10126 } 10128 } 10129 MG2 generates the response for the Modify command generated by MGC. 10130 Step 28 10131 MG2 to MGC: 10132 MEGACO/1 [207.176.47.89]:26000 10133 Reply = 1242 { 10134 Context = 2 { 10135 Modify= TermB } 10136 } 10137 } 10139 The UserB press flash button on the phone and the Residential gateway 10140 generates Notify command towards the MGC. 10142 Step 29 10143 MG2 to MGC: 10144 MEGACO/1 [207.176.47.89]:26000 10145 Transaction = 3001 { 10146 Context = 2 { 10147 Notify = TermB {ObservedEvents =1234 { 10148 20040202T10000000:al/fl}} 10149 } 10150 } 10152 MGC generates the Notify response and responds with further messages 10153 towards the MG that generated the Notify command. 10155 Step 30 10156 MGC to MG2: 10157 MEGACO/1 [216.33.33.61]: 27000 10158 Reply = 3001 { 10159 Context = 2 {Notify = TermB} 10160 } 10161 The MGC now is aware that the UserB should be in voice conversation 10162 with UserC instead of UserA. The MGC now has to update the remote SDP 10163 information of UserC. Such that any the same local SDP information is 10164 used by UserB to continue calling UserC. The Local SDP information of 10165 UserC is provided as the remote SDP information to UserB. Since the 10166 Ephemeral termination is already in context, the Modify command is 10167 used by MGC to update the remote SDP information. 10169 Step 31 10170 MGC to MG2: 10171 MEGACO/1 [216.33.33.61]: 27000 10172 Transaction = 1243 { 10173 Context = 2 { 10174 Modify = TermB { 10175 Media { 10176 LocalControl { 10177 Mode = sendrecv} 10178 } 10180 } 10181 Signals { } 10182 }, 10183 Modify = EphB { 10184 Media { 10185 LocalControl { 10186 Mode = sendrecv} 10187 Remote { 10188 v=0 10189 c=IN IP4 192.168.0.160 10190 m=audio 50000 RTP/AVP 4 10191 } 10192 } ; RTP profile for G723 is 4 10193 } 10194 } 10195 } 10196 } 10197 The empty signal descriptor in the Modify command for termination TermB, 10198 stop the Call waiting tone at the calling end. The remote SDP 10199 information is updated for the ephemeral termination EphB. The mode is 10200 changed to send receive. MG2 responds to the MGC with the response for 10201 the Modify commands. 10203 Step 32 10204 MG2 to MGC: 10205 MEGACO/1 [207.176.47.89]: 26000 10206 Reply = 1243 { 10207 Context = 2 {Modify = TermB, Modify = EphB} 10208 } 10209 The MGC now generates a Modify command to change the mode of the 10210 termination from receive only to send receive. At the same time MGC 10211 also sends an empty signal descriptor to stop the ring back tone that 10212 was earlier applied on termination TermC of UserC. 10214 Step 33 10215 MGC to MG3: 10216 MEGACO/1 [216.33.33.61]: 27000 10217 Transaction = 1244 { 10218 Context = 3 { 10219 Modify = TermC { 10220 Media { 10221 LocalControl { 10222 Mode = sendrecv} 10223 } 10224 } 10225 Signals { } 10226 }, 10227 Modify = EphC { 10228 Media { 10229 LocalControl { 10230 Mode = sendrecv} 10232 } 10233 } 10234 } 10235 } 10236 The empty signal descriptor in the Modify command for termination 10237 TermC, stop the ringback tone at the calling end. The mode is changed 10238 to send receive. MG3 responds to the MGC with the response for the 10239 Modify commands. 10241 Step 34 10242 MG3 to MGC: 10243 MEGACO/1 [209.110.60.34]: 25000 10244 Reply = 1244 { 10245 Context = 3 {Modify = TermC, Modify = EphC} 10246 } 10247 Now the UserB and UserC are connected (through RTP Media). After the 10248 conversation in the example UserC goes onhook to termination its call 10249 with UserB. The Onhook event is reported to MGC though the Notify 10250 command. 10252 Step 35 10253 MG3 to MGC: 10254 MEGACO/1 [209.110.60.34]:25000 10255 Transaction = 4002 { 10256 Context = 3 { 10257 Notify = TermC {ObservedEvents =1234 { 10258 20050202T10030000:al/on} 10259 } 10260 } 10261 } 10262 The MGC responds to the MG3s Notify message. 10264 Step 36 10265 MGC to RGW3: 10266 MEGACO/1 [216.33.33.61]:27000 10267 Reply = 4002 { 10268 Context = 3 { 10269 Notify = TermC 10270 } 10271 } 10273 The MGC generates Subtract command towards RGW3. 10275 Step 37 10276 MGC to MG3: 10277 MEGACO/1 [216.33.33.61]: 27000 10278 Transaction = 1245 { 10279 Context = 3 { 10280 Subtract = TermC {Audit{ }}, 10281 Subtract = EphC {Audit{Statistics}} 10282 } 10284 } 10285 The MG3 responds to the subtract commands generated by MGC. 10287 Step 38 10288 MG3 to MGC: 10289 MEGACO/1 [209.110.59.35]:25000 10290 Reply = 1245 { 10291 Context = 3 { 10292 Subtract = TermC 10293 Subtract = EphC { 10294 Statistics { 10295 rtp/ps=987, ; packets sent 10296 nt/os=65432, ; octets sent 10297 rtp/pr=1234, ; packets received 10298 nt/or=56789, ; octets received 10299 rtp/pl=10, ; % packets lost 10300 rtp/jit=30, 10301 rtp/delay=30 ; average latency 10302 } 10303 } 10304 } 10305 } 10307 The MGC generates a Modify command towards the RGW2 for applying busy 10308 tone to the called subscriber. The mode of both terminations is set 10309 to receive only. 10311 Step 39 10312 MGC to RGW2: 10313 MEGACO/1 [216.33.33.61]: 27000 10314 Transaction = 1246 { 10315 Context = 2 { 10316 Modify = TermB { 10317 Signals {cg/bt} 10318 Events = 1235 { al/fl, al/on } 10319 Media { 10320 LocalControl { 10321 Mode = recvonly} 10322 } 10323 }, 10324 Modify = EphB { 10325 Media { 10326 LocalControl { 10327 Mode = recvonly} 10328 } 10329 } 10330 } 10331 } 10332 } 10333 The MG2 responds to this modify request. 10335 Step 40 10336 MG2 to MGC: 10337 MEGACO/1 [207.176.47.89]: 26000 10338 Reply = 1246 { 10339 Context = 2 { 10340 Modify= TermB, Modify = EphB} 10341 } 10342 The User B press flash to continue its call with UserA. The flash event 10343 is reported to MGC in the Notify command. 10345 Step 41 10346 MG2 to MGC: 10347 MEGACO/1 [207.176.47.89]:26000 10348 Transaction = 3002 { 10349 Context = 2 { 10350 Notify = TermB {ObservedEvents =1234 { 10351 20060202T10000000:al/fl}} 10352 } 10353 } 10355 MGC generates the Notify response and responds with further messages 10356 towards the MG that generated the Notify command. 10358 Step 42 10359 MGC to MG2: 10360 MEGACO/1 [216.33.33.61]: 27000 10361 Reply = 3002 { 10362 Context = 2 {Notify = TermB} 10363 } 10364 The MGC now generates a Modify command towards the UserB with the 10365 Local SDP information of UserA as Remote SDP information for the 10366 ephemeral termination EphB. This enables UserB to continue the call 10367 with UserA. 10369 Step 43 10370 MGC to MG2: 10371 MEGACO/1 [216.33.33.61]: 27000 10372 Transaction = 1247 { 10373 Context = 2 { 10374 Modify = TermB { 10375 Media { 10376 LocalControl { 10377 Mode = sendrecv} 10378 } 10379 } 10380 Signals { } 10381 }, 10382 Modify = EphB { 10383 Media { 10384 LocalControl { 10385 Mode = sendrecv} 10386 Remote { 10387 v=0 10388 c=IN IP4 209.110.59.33 10389 m=audio 30000 RTP/AVP 4 10390 } 10391 } ; RTP profile for G723 is 4 10392 } 10393 } 10394 } 10395 } 10396 The empty signal descriptor in the Modify command for termination 10397 TermB, stop the busy tone at the calling end. The remote SDP 10398 information is updated for the ephemeral termination EphB. The mode is 10399 changed to send receive. MG2 responds to the MGC with the response for 10400 the Modify commands. 10402 Step 44 10403 MG2 to MGC: 10404 MEGACO/1 [207.176.47.89]: 26000 10405 Reply = 1247 { 10406 Context = 2 {Modify = TermB, Modify = EphB} 10407 } 10408 The UserB and UserA can continue their conversation. The call can be 10409 tear down either by UserA or UserB. In this example we assume that 10410 UserA terminates the Call. The UserA goes onhook and the users action 10411 is reported to MGC using the Notify command. 10413 Step 45 10414 RGW1 to MGC: 10415 MEGACO/1 [209.110.59.34]:25000 10416 Transaction = 2002 { 10417 Context = 1 { 10418 Notify = TermA {ObservedEvents =1112 { 10419 20010202T10030000:al/on} 10420 } 10421 } 10422 } 10423 The MGC responds to the MG1s Notify message. 10425 Step 46 10426 MGC to RGW1: 10427 MEGACO/1 [216.33.33.61]:27000 10428 Reply = 2002 { 10429 Context = 1 { 10430 Notify = TermA 10431 } 10432 } 10434 The MGC generates a Modify command towards the RGW2 for applying busy 10435 tone to the called subscriber. The mode of both terminations is set to 10436 receive only. 10438 Step 47 10439 MGC to RGW2: 10440 MEGACO/1 [216.33.33.61]: 27000 10441 Transaction = 1248 { 10442 Context = 2 { 10443 Modify = TermB { 10444 Signals {cg/bt} 10445 Media { 10446 LocalControl { 10447 Mode = recvonly} 10448 } 10449 }, 10450 Modify = EphB { 10451 Media { 10452 LocalControl { 10453 Mode = recvonly} 10454 } 10455 } 10456 } 10457 } 10458 } 10460 The MG2 responds to this modify request. 10462 Step 48 10463 MG2 to MGC: 10464 MEGACO/1 [207.176.47.89]: 26000 10465 Reply = 1248 { 10466 Context = 2 { 10467 Modify= TermB, Modify = EphB} 10468 } 10470 The MGC generates transactions with two subtracts commands one for 10471 physical and other for ephemeral terminations. The MGC does the same 10472 for both the Contexts one at RGW1 and the other at RGW2. 10474 Step 49: 10475 MGC to MG1 10476 MEGACO/1 [216.33.33.61]: 27000 10477 Transaction = 1249 { 10478 Context = 1 { 10479 Subtract = TermA {Audit {}}, 10480 Subtract = EphA {Audit {Statistics}} 10481 } 10482 } 10483 The MG subtracts the two terminations from the context. The context 10484 itself is deleted with the subtract of the last termination from it. 10485 The MG1 responds to this transaction from MGC with statistics on 10486 ephemeral termination. 10488 Step 50 10489 MG1 to MGC: 10490 MEGACO/1 [209.110.59.34]:25000 10491 Reply = 1249 { 10492 Context = 1 { 10493 Subtract = TermA 10494 Subtract = EphA { 10495 Statistics { 10496 rtp/ps=1234, ; packets sent 10497 nt/os=56789, ; octets sent 10498 rtp/pr=987, ; packets received 10499 nt/or=65432, ; octets received 10500 rtp/pl=10, ; % packets lost 10501 rtp/jit=30, 10502 rtp/delay=30 ; average latency 10503 } 10504 } 10505 } 10506 } 10508 The UserB after hearing the busy tone goes onhook, the same is 10509 recognized by the Media gateway and generates Notify command towards 10510 the MGC. 10512 Step 51 10513 MG2 to MGC: 10514 MEGACO/1 [207.176.47.89]:26000 10515 Transaction = 3003 { 10516 Context = 2 { 10517 Notify = TermB {ObservedEvents =1234 { 10518 20060202T10000000:al/on}} 10519 } 10520 } 10522 MGC generates the Notify response and responds with further messages 10523 towards the MG that generated the Notify command. 10525 Step 52 10526 MGC to MG2: 10527 MEGACO/1 [216.33.33.61]: 27000 10528 Reply = 3002 { 10529 Context = 2 {Notify = TermB} 10530 } 10532 The MGC then generates subtract commands towards RGW2. 10534 Step 53 10535 MGC to MG2: 10536 MEGACO/1 [216.33.33.61]: 27000 10537 Transaction = 1250 { 10538 Context = 2 { 10539 Subtract = TermB {Audit{ }}, 10540 Subtract = EphB {Audit{Statistics}} 10541 } 10542 } 10543 The MG2 responds to the subtract commands generated by MGC. 10545 Step 54 10546 MG2 to MGC: 10547 MEGACO/1 [207.176.47.89]: 26000 10548 Reply = 1250 { 10549 Context = 2 { 10550 Subtract = TermB 10551 Subtract = EphB { 10552 Statistics { 10553 rtp/ps=987, ; packets sent 10554 nt/os=65432, ; octets sent 10555 rtp/pr=1234, ; packets received 10556 nt/or=56789, ; octets received 10557 rtp/pl=10, ; % packets lost 10558 rtp/jit=30, 10559 rtp/delay=30 ; average latency 10560 } 10561 } 10562 } 10563 } 10564 The MGC generates the message as shown in step 1 to all the Media Gateways, 10565 to enable the users to participate/initiate in further calls. 10567 9. Conferencing 10569 A Media Gateway optionally performs media conferencing. Media Gateways 10570 that support multipoint conferences might allow three or more 10571 terminations in a context. In this section we will illustrate 10572 conferencing between three users. These call flows makes use of the 10573 Topology descriptor. A topology descriptor is used to specify flow 10574 directions between terminations in a Context. 10576 _____________________________________________________________________ 10577 | | | 10578 MG1 | MGC | MG2 | MG3 10579 ________________|_______________|________________|____________________ 10580 | | | | 10581 |<----------------|-------------->| | 10582 |Initial Modify | Initial Modify| | 10583 | |-------------------------------->| 10584 | | Initial Modify | 10585 |---------------->|<--------------| | 10586 |Modify Response | Modify Resp | | 10587 | |<--------------------------------| 10588 | | Modify Response | 10589 |---------------->| | | 10590 | Notify OffHook | | | 10591 |<----------------| | | 10592 |Notify Response | | | 10593 |<----------------| | | 10594 |Modify ED:dd/cd,al/on SD:cg/dt | | 10595 <-----|---------------->| | | 10596 Dial | Modify Resp | | | 10597 Tone | | | | 10598 ------>| | | | 10599 Digits |---------------->| | | 10600 |Notify Digits | | | 10601 |<----------------| | | 10602 |Notify Response | | | 10603 |<----------------|-------------->| | 10604 |Modify ringback | Modify Ring | | 10605 <------|---------------->|<--------------| | 10606 ring | Modify Resp | Modify Resp | | 10607 back |<----------------|<--------------| | 10608 | Add Phy |Notify OffHook | | 10609 |Add $ Local Unspecified | | 10610 | |-------------->| | 10611 | |Notify Resp | | 10612 |---------------->| | | 10613 |Add Phy Resp | | | 10614 |Add EphAResp Local specified | | 10615 | |-------------->| | 10616 | |Add Phy | | 10617 | |Add $ Local unspecified Remote Specified 10618 | |-------------->| | 10619 | | Add Phy Resp Add EphB Resp Local Specified 10620 |<----------------| | | 10621 | Modify EphA Remote Specified | | 10622 |---------------->| | | 10623 | Modify Resp | | | 10624 |/-------------------------------\| | 10625 | RTP MEDIA | | 10626 |\-------------------------------/| | 10627 | |<--------------| | 10628 | | Notify Flash | | 10629 | |-------------->| | 10630 |<----------------| Notify Resp | | 10631 | Modify RecvOnly | ---------->| | 10632 |---------------->| DialTone | | 10633 | Modify Resp |<--------------| | 10634 | | Notify Digits | | 10635 | |-------------->| | 10636 | | Notify Resp | | 10637 | |-------------------------------->| 10638 | | Modify Ring | 10639 | |<--------------------------------| 10640 | | Modify Response | 10641 | |-------------->| | 10642 | | Modify Ringback tone | 10643 | |<--------------| | 10644 | | Modify Resp | | 10645 | |<--------------------------------| 10646 | | Notify OffHook | 10647 | |-------------------------------->| 10648 | | Notify Resp | 10649 | |-------------------------------->| 10650 | | Add Phy | 10651 | | Add Eph Local Unspecified Remote Specified 10652 | |<--------------------------------| 10653 | | Add Phy Resp Add EphC Resp Local Specified 10654 | |-------------->| | 10655 | | Modify EphBRemote | 10656 | |<--------------| | 10657 | | Modify EphB Resp | 10658 | |/-------------------------------\| 10659 | | RTP Media | 10660 | |\-------------------------------/| 10661 | |<--------------| | 10662 | | Notify Flash | | 10663 | |-------------->| | 10664 | | Notify Resp | | 10665 |<----------------| | | 10666 | Add $ | | | 10667 |---------------->| | | 10668 | Add EphD Resp | | | 10669 | |-------------------------------->| 10670 | | Add $ | 10671 | |<--------------------------------| 10672 | | Add EphF Resp | 10673 |<----------------| | | 10674 | Mod EphD | | | 10675 |---------------->| | | 10676 | Mod EphD Resp | | | 10677 | |-------------->| | 10678 | | Add $ | | 10679 | |<--------------| | 10680 | | Add EphE Resp | | 10681 |<----------------| | | 10682 | Mod EphA | | | 10683 |---------------->| | | 10684 | Mod EphA Resp | | | 10685 | | / \ | 10686 | | | | | 10687 |/------------------------------- ---------------\| 10688 | RTP MEDIA | 10689 |\-------------------------------------------------/| 10690 | |<--------------| | 10691 | | Notify OnHook | | 10692 | |-------------->| | 10693 | | Notify Resp | | 10694 |<----------------| | | 10695 | Sub EphA |-------------->| | 10696 |---------------->| Sub EphB,EphE | | 10697 | Sub EphA Resp |<--------------| | 10698 | statsitics | Sub EphB Resp Statistics | 10699 | | Sub EphE Resp Statistics | 10700 | |-------------------------------->| 10701 | | Sub EphC | 10702 | |<--------------------------------| 10703 | | Sub EphC Resp statistics | 10704 |/-------------------------------------------------\| 10705 | RTP MEDIA | 10706 |\-------------------------------------------------/| 10707 | |<--------------------------------| 10708 | | Notify OnHook | 10709 | |-------------------------------->| 10710 | | Notify Resp | 10711 |<----------------| | | 10712 | Modify Phy busyTone | | 10713 |---------------->| | | 10714 | Modify Resp | | | 10715 | |-------------------------------->| 10716 | | Sub Phy, Sub EphF | 10717 | |<--------------------------------| 10718 | | Sub Phy Resp | 10719 | | Sub EphF Resp Statistics| 10720 |---------------->| | | 10721 | Notify OnHook | | | 10722 |<----------------| | | 10723 | Notify Resp | | | 10724 |<----------------| | | 10725 | Sub Phy | | | 10726 | Sub EphD | | | 10727 |---------------->| | | 10728 | Sub Phy Resp | | | 10729 | Sub EphD Resp Statistics | | 10730 _______|_________________|_______________|_________________|____________ 10732 The conferencing feature in PSTN allows a user speak with 10733 multiple users at the same time. This feature 10734 should be supported by MGC so that it is capable of generating required 10735 messages towards MG. In this example we assume that the MGC is capable 10736 of supporting Conferencing. UserB, the called party, initially receives 10737 a call from UserA. For adding UserC, UserB press flash hook and dials 10738 UserC number and after UserC answers the call goes flash hook again to 10739 connect UserA and UserC. Now UserA, User B and UserC are in the call. 10741 The MGC generates the Modify message towards all the three Residential 10742 gateways to check for off hook on the terminations. (A wildcard 10743 command may also be used in this scenario but for simplicity we consider 10744 only command to specific terminations). We are not considering the 10745 embedded signal and event descriptors here. The MGC in 10746 NULL context generates the command to the specific termination TermA. 10747 The off hook event of the analog supervision package is used here. The 10748 request identifier specified here in the example is 1111. The mode of 10749 the termination is set to receive only. The stream parameter is used 10750 with only the Local control descriptor. 10752 Step 1 10753 MGC to RGW1: 10754 MEGACO/1 [216.33.33.61]:27000 10755 Transaction = 1234 { 10756 Context = - { 10757 Modify = TermA { 10758 Media { 10759 LocalControl { 10760 Mode = ReceiveOnly} 10761 } , 10762 Events = 1111 {al/of} 10763 } 10764 } 10765 } 10767 MG after receiving the command from MGC accepts it and responds with 10768 the transaction reply. Here only MG1 is shown to generate the 10769 response. In fact all the RGW generates the response. 10771 Step 2 10773 MG1 to MGC: 10774 MEGACO/1 [209.110.59.34]:25000 10775 Reply = 1234 { 10776 Context = - {Modify = TermA} 10777 } 10779 In this example User A goes off hook. This event is detected by the 10780 RGW1 and constructs the Notify message to the MGC. The MG uses the same 10781 request id (1111) sent by the MGC in its initial command. The timestamp 10782 of the event detected is also passed as a parameter to the observed event. 10784 Step 3 10785 MG1 to MGC: 10786 MEGACO/1 [209.110.59.34]:25000 10787 Transaction = 2000 { 10788 Context = - { 10789 Notify = TermA {ObservedEvents =1111 { 10790 20010202T10000000:al/of}} 10791 } 10792 } 10794 MGC generates the Notify response and responds with further messages 10795 towards the MG that generated the Notify command. 10797 Step 4 10798 MGC to MG1: 10799 MEGACO/1 [216.33.33.61]: 27000 10800 Reply = 2000 { 10801 Context = - {Notify = TermA} 10802 } 10804 The MGC in the following command issues a MODIFY command. The Modify 10805 command contains a signal descriptor for the application of dial tone 10806 to the user. The digit map descriptor here is used to configure a digit 10807 map on the termination. The digit map name used in the example is Dmap1 10808 and the dial patter is 2XXX. The event descriptor lists digit map 10809 completion event of the DTMF detection package and onhook of the 10810 analog line supervision package. The request id specified in the event 10811 descriptor is 1112. 10813 Step 5 10814 MGC to MG1: 10815 MEGACO/1 [216.33.33.61]: 27000 10816 Transaction = 1235 { 10817 Context = - { 10818 Modify = TermA { 10819 Signals {cg/dt}, 10820 DigitMap= Dmap1{(2XXX)} 10821 Events = 1112 { 10822 al/on, dd/ce {DigitMap=Dmap1} 10823 }, 10824 } 10825 } 10826 } 10828 MG after validating the Modify command responds to the MGC and starts 10829 processing the descriptors listed. 10831 Step 6 10832 MG1 to MGC: 10833 MEGACO/1 [209.110.59.34]: 25000 10834 Reply = 1235 { 10835 Context = - {Modify = TermA} 10836 } 10838 The descriptors are processed in the order that is specified by the MGC. 10839 In this example the order of descriptor is signal descriptor, digit map 10840 descriptor followed by Events descriptor. The MG first processes the 10841 signal descriptor. The dial tone is applied to the Termination 10842 specified. The Digit map is updated in the Database of the termination. 10843 The Digit map will be made ACTIVE on the termination as the digit map 10844 completion event is listed in the events descriptor with the digit map 10845 name. A digit map is activated whenever a new event descriptor is 10846 applied to the termination or embedded event descriptor is activated, 10847 and that event descriptor contains a digit map completion event which 10848 itself may contain a digit map parameter. UserA after receiving the dial 10849 tone starts dialing digits. In this example we will not dwell into the 10850 different possible cases of digit dialing by the user.The digits dialed 10851 by the user match with the digit map pattern. 10852 Lets assume that the user has dialed 2992. MG detects the digits 10853 dialed and reports the same as parameter to the digit map completion 10854 event. A notify command is generated from MG1 to MGC. The MG again 10855 used the same request identifier as specified by the MGC. 10857 Step 7 10858 MG1 to MGC: 10859 MEGACO/1 [209.110.59.34]: 25000 10860 Transaction = 2001 { 10861 Context = - { 10862 Notify = TermA {ObservedEvents =1112 { 10863 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 10864 } 10865 } 10867 MGC after receiving the Notify command responds back with the Notify 10868 response. 10870 Step 8 10871 MGC to MG1: 10872 MEGACO/1 [216.33.33.61]: 27000 10873 Reply = 2001 { 10874 Context = - {Notify = TermA} 10875 } 10877 MGC after receiving the Notify command starts analyzing the dialed 10878 digits. In this example the called subscriber is connected to the 10879 RGW2, which is again controlled by the same MGC. The MGC generates a 10880 transaction with two commands clubbed into the same Action. The first 10881 command is to create a new context and add the physical termination 10882 TermA into it. As the MGC is aware that the destination user 10883 UserB is free it instructs MG1 to apply ringback tone to the 10884 termination of UserA. The second command is generated to create an 10885 ephemeral termination and add the created termination in the same 10886 context that was created as a result of the earlier command. Here we 10887 assumed a single set of SDP information indicating that Reserve group 10888 is not used. The Reserve Value feature is also not used. 10890 Step 9 10891 MGC to MG1: 10892 MEGACO/1 [216.33.33.61]: 27000 10893 Transaction = 1236 { 10894 Context = $ { 10895 Add = TermA { 10896 Signals { cg/rt } 10897 } 10898 Add = $ { 10899 Media { 10900 { 10901 LocalControl { 10902 Mode = ReceiveOnly, 10903 }, 10904 Local { 10905 v=0 10906 c=IN IP4 $ 10907 m=audio $ RTP/AVP 4 10908 } 10909 } 10910 } 10911 } 10912 } 10914 In this example the connection fields IP address, the media field port 10915 number are unspecified. The MG in its response indicates the IPAddress 10916 and port number used. The contextID is also not specified indicating 10917 the creation of a new context. In this example the MG creates a context 10918 with contextID 1. The physical termination TermA is added to context 1. 10919 The mode of the physical termination was earlier set to Receiveonly 10920 and in this message the ephemeral termination is requested to create 10921 with Receiveonly mode. The ephemeral termination created in this 10922 example is EphA. MG responds with the allocated IP address 10923 209.110.59.33 and port number 30000. 10925 Step 10 10926 MG1 to MGC: 10927 MEGACO/1 [209.110.59.34]: 25000 10928 Reply = 1236 { 10929 Context = 1 { 10930 Add = TermA, 10931 Add=EphA{ 10932 Media { 10933 Local { 10934 v=0 10935 c=IN IP4 209.110.59.33 10936 m=audio 30000 RTP/AVP 4 10937 a=recvonly 10938 } ; RTP profile for G.723 is 4 10939 } 10940 } 10941 } 10942 } 10943 } 10945 MGC generates a similar transaction towards the RGW2. The ContextID 10946 specified in the action is $. The first command adds the physical 10947 termination TermB to the newly created context. The Signal descriptor 10948 for this termination lists the ring signal of the analog line 10949 supervision package. This alerting signal is applied to the 10950 termination of the TermB. The Event descriptor specifies offhook event 10951 of the analog line supervision package. The second Add is meant to 10952 create an ephemeral termination. MGC has the local information for the 10953 ephemeral termination EphA in the RGW1. This information is passed as 10954 remote information to the RGW2. The new ephemeral termination that 10955 will be created will take these parameters as the remote SDP 10956 information. 10958 Step 11 10959 MGC to MG2: 10960 MEGACO/1 [216.33.33.61]:27000 10961 Transaction = 1237 { 10962 Context = $ { 10963 Add = TermB { Media { 10964 LocalControl {Mode = Receiveonly} }, 10965 Signals {al/ri} 10966 Events=1234{al/of}, 10967 }, 10968 Add = $ {Media { 10969 LocalControl { 10970 Mode = Receiveonly, 10971 }, 10972 Local { 10973 v=0 10974 c=IN IP4 $ 10975 m=audio $ RTP/AVP 4 10977 }, 10978 Remote { 10979 v=0 10980 c=IN IP4 209.110.59.33 10981 m=audio 30000 RTP/AVP 4 10982 } ; RTP profile for G.723 is 4 10983 } 10984 } 10985 } 10986 } 10988 } 10990 MG2 after receiving the new transaction from MGC starts processing it. 10991 It creates a new context with contextID 2. It adds the physical 10992 termination TermB to that context and start processing the descriptor 10993 specified in the command. The signal descriptor lists "ring" signal to 10994 be applied on the termination. The event descriptor lists the off hook 10995 event. The RGW2 creates a ephemeral termination with TerminationId 10996 EphB. The local information is under-specified from the MGC. The MG 10997 allocates the necessary resources for processing the media descriptor 10998 for the ephemeral termination. The MG responds to the MGC by 10999 specifying the IP address reserved for the local connection. In this 11000 example MG2 reserves IP address 207.176.47.90 and port number 40000. 11001 The MG2 responds to MGC with the following transaction reply. 11003 Step 12 11004 MG2 to MGC: 11005 MEGACO/1 [207.176.47.89]: 26000 11006 Reply = 1237 { 11007 Context = 2 { 11008 Add = TermB, 11009 Add = EphB{ 11010 Media { 11011 Local { 11012 v=0 11013 c=IN IP4 207.176.47.90 11014 m=audio 40000 RTP/AVP 4 11015 } 11016 } ; RTP profile for G723 is 4 11017 } 11018 } 11019 } 11021 The MGC waits for the UserB to go offhook. Once the UserB goes offhook, 11022 MG2 reports the notification of the offhook event to the MGC. 11024 Step 13 11025 MG2 to MGC: 11026 MEGACO/1 [207.176.47.89]: 26000 11027 Transaction = 3000 { 11028 Context = 2 { 11029 Notify = TermB {ObservedEvents =1234 { 11030 20000202T10020000:al/of}} 11031 } 11032 } 11033 The MGC responds to the MG2 with the Notify response. 11035 Step 14 11036 MGC to MG2: 11037 MEGACO/1 [216.33.33.61]: 27000 11038 Reply = 3000 { 11039 Context = 2 {Notify = TermB} 11040 } 11041 The MGC generates a transaction towards MG2 with two commands in one 11042 action. It changes the mode of both the terminations to sendrecv. The 11043 Signal descriptor of the Modify command for the first termination, 11044 stops the ring signal already applied on the termination and the event 11045 descriptor lists the onhook event, flash hook and the dd/ce event. 11047 Step 15: 11048 MGC to MG2: 11049 MEGACO/1 [216.33.33.61]: 27000 11050 Transaction = 1238 { 11051 Context = 2 { 11052 Modify = TermB { 11053 Signals { } ; to turn off ringing 11054 Events = 1235 {al/on, al/fl { signals cg/dt, events 11055 dd/ce{dmap1}, al/on }}, 11056 Media { 11057 LocalControl { 11058 Mode = SendRecv, 11059 } 11060 } 11061 } 11062 Modify = EphB{ 11063 Media { 11064 LocalControl { 11065 Mode = SendRecv, 11066 } 11067 } 11068 } 11069 } 11071 The MG2 responds to the request from MGC. 11073 Step 16 11074 MG2 to MGC: 11075 MEGACO/1 [207.176.47.89]: 26000 11076 Reply = 1238 { 11077 Context = 2 {Modify = TermB , Modify = EphB} 11078 } 11080 The MGC generates message to the MG1 to stop the ringback tone and to 11081 report the remote SDP information for the ephemeral termination EphA. 11082 The mode of the two terminations TermA and EphA is set to send 11083 receive. 11085 Step 17 11086 MGC to MG1: 11087 MEGACO/1 [216.33.33.61]: 27000 11088 Transaction = 1239 { 11089 Context = 1 { 11090 Modify = TermA { 11091 Media { 11092 LocalControl { 11093 Mode = sendrecv} 11094 } 11095 } 11096 Signals { } 11097 }, 11098 Modify = EphA { 11099 Media { 11100 LocalControl { 11101 Mode = sendrecv} 11102 Remote { 11103 v=0 11104 c=IN IP4 207.176.47.90 11105 m=audio 40000 RTP/AVP 4 11106 } 11107 } ; RTP profile for G723 is 4 11108 } 11109 } 11110 } 11111 } 11112 The empty signal descriptor in the Modify command for termination 11113 TermA, stop the ringback tone at the calling end. The remote SDP 11114 information is updated for the ephemeral termination EphA. The mode is 11115 changed to send receive. MG1 responds to the MGC with the response for 11116 the Modify commands. 11118 Step 18 11119 MG1 to MGC: 11120 MEGACO/1 [209.110.59.34]: 25000 11121 Reply = 1239 { 11122 Context = 1 {Modify = TermA, Modify = EphA} 11123 } 11124 The two users can exchange media, as the RTP streams are made 11125 bi-directional. The figure below shows the terminations at both in 11126 both the Contexts. 11128 +------------------------------------------------------+ 11129 | RGW1 | 11130 | Context1 | 11131 | +---------------+ +---------------+ | 11132 | | | | | | 11133 | | | | | | 11134 | | Phy A | +-+ | Eph A | | 11135 <---->| |<--->|*|<---->| LocalA |<------> 11136 | | | +-+ | RemoteB | | 11137 | | | | | | 11138 | +---------------+ +---------------+ | 11139 | | 11140 +------------------------------------------------------+ 11142 +------------------------------------------------------+ 11143 | RGW2 | 11144 | Context2 | 11145 | +---------------+ +---------------+ | 11146 | | | | | | 11147 | | | | | | 11148 | | Phy B | +-+ | Eph B | | 11149 <---->| |<--->|*|<---->| LocalB |<------> 11150 | | | +-+ | RemoteA | | 11151 | | | | | | 11152 | +---------------+ +---------------+ | 11153 | | 11154 +------------------------------------------------------+ 11156 The UserB now presses flash to dial the UserC number. The UserB flash 11157 event is reported to MGC using the Notify message. 11159 Step 19 11160 MG2 to MGC: 11161 MEGACO/1 [209.110.59.34]:25000 11162 Transaction = 3001 { 11163 Context = 2 { 11164 Notify = TermB {ObservedEvents =1235 { 11165 20040202T10000000:al/fl}} 11166 } 11167 } 11169 MGC generates the Notify response. 11171 Step 20 11172 MGC to MG2: 11173 MEGACO/1 [216.33.33.61]: 27000 11174 Reply = 3001 { 11175 Context = 2 {Notify = TermB} 11176 } 11177 The UserB gets the dial tone and starts dialing the digits. In this 11178 example the UserB dials the number 2804 of UserC. The dialed digits 11179 are reported to MGC using digit map completion event. The digits are 11180 reported using the Notify command. 11182 Step 21 11183 MG2 to MGC: 11184 MEGACO/1 [209.110.59.34]: 27000 11185 Transaction = 3002 { 11186 Context = 2 { 11187 Notify = TermB {Observed Events =1235 { 11188 20040202T10010000:dd/ce{ds="2804",Meth=FM}}} 11189 } 11190 } 11192 MGC after receiving the Notify command responds back with the Notify 11193 response. 11195 Step 22 11196 MGC to MG2: 11197 MEGACO/1 [216.33.33.61]: 27000 11198 Reply = 3002 { 11199 Context = 2 {Notify = TermB} 11200 } 11201 The UserC is alerted with ring signal to indicate that a call is to be 11202 received. The Add command for the physical termination TermC with 11203 signal descriptor allows the ring signal to be applied on the 11204 termination. The ephemeral termination is also requested to be created 11205 with under specified Local SDP information and fully specified Remote 11206 SDP information. 11208 Step 23: 11209 MGC to MG3: 11210 MEGACO/1 [216.33.33.61]: 27000 11211 Transaction = 1240 { 11212 Context = $ { 11213 Add = TermC { 11214 Signals { al/ri } 11215 Events = 1111{ al/of embedded { al/on } } 11216 } 11217 Add = $ { 11218 Media { 11219 { 11220 LocalControl { 11221 Mode = ReceiveOnly, 11222 }, 11223 Local { 11224 v=0 11225 c=IN IP4 $ 11226 m=audio $ RTP/AVP 4 11227 } 11228 Remote { 11229 v=0 11230 c=IN IP4 207.176.47.90 11231 m=audio 40000 RTP/AVP 4 11232 } 11233 } ; RTP profile for G723 is 4 11234 } 11235 } 11236 } 11237 } 11239 In this example the SDP local information connection fields IP 11240 address, the media field port numbers are unspecified. The MG in its 11241 response indicates the IPAddress and port number used. The contextID is 11242 also not specified indicating the creation of a new context. In this 11243 example the MG creates a context with contextID 3. The physical 11244 termination TermC is added to context 3. The mode of the physical 11245 termination was earlier set to Receiveonly and in this message the 11246 ephemeral termination is requested to create with Receiveonly mode. 11247 The ephemeral termination created in this example is EphC. MG responds 11248 with the allocated IP address 192.168.0.160 and port number 50000. 11250 Step 24 11251 MG1 to MGC: 11252 MEGACO/1 [209.110.59.34]: 25000 11253 Reply = 1240 { 11254 Context = 3 { 11255 Add = TermC, 11256 Add=EphC{ 11257 Media { 11258 Local { 11259 v=0 11260 c=IN IP4 192.168.0.160 11261 m=audio 50000 RTP/AVP 4 11262 a=recvonly 11263 } ; RTP profile for G.723 is 4 11264 } 11265 } 11266 } 11267 } 11268 } 11270 The MGC generates ring back tone towards the UserB to indicate that 11271 altering signal has been sent to the called party UserC. 11272 Step 25 11273 MGC to MG2: 11274 MEGACO/1 [216.33.33.61]: 27000 11275 Transaction = 1241 { 11276 Context = 2 { 11277 Modify = TermB { 11278 Signals { cg/rt } 11279 } 11280 } 11281 } 11282 } 11283 The MG2 after receiving the Modify command applies the ring back tone 11284 specified in the signals descriptor. The Modify response is sent back 11285 to MGC. 11287 Step 26 11288 MG2 to MGC: 11289 MEGACO/1 [207.176.47.89]: 26000 11290 Reply = 1241 { 11291 Context = 2 { 11292 Modify= TermB, 11293 } 11294 } 11295 The UserC after receiving the ring signal goes offhook. The offhook 11296 event is reported to MGC in the Notify command. 11298 Step 27 11299 MG3 to MGC: 11300 MEGACO/1 [209.110.59.34]:28000 11301 Transaction = 4001 { 11302 Context = 3 { 11303 Notify = TermC {ObservedEvents =1111 { 11304 20050202T10000000:al/of}} 11305 } 11306 } 11308 MGC generates the Notify response and responds with further messages 11309 towards the MG that generated the Notify command. 11311 Step 28 11312 MGC to MG3: 11313 MEGACO/1 [216.33.33.61]: 27000 11314 Reply = 4001 { 11315 Context = 3 {Notify = TermC} 11316 } 11317 The MGC now updates the UserC connected to the Residential gateway 3 11318 with modify command to change the mode of the terminations set to 11319 sendrecv. 11321 Step 29: 11322 MGC to MG3: 11323 MEGACO/1 [216.33.33.61]: 27000 11324 Transaction = 1242 { 11325 Context = 3 { 11326 Modify = TermC { 11327 Signals { } ; to turn off ringing 11328 Events = 1235 {al/on}, 11329 Media { 11330 LocalControl { 11331 Mode = SendRecv, 11332 } 11333 } 11334 } 11335 Modify = EphC{ 11336 Media { 11337 LocalControl { 11338 Mode = SendRecv, 11339 } 11340 } 11342 } 11343 } 11344 The Residential gateway responds with the Modify response command. 11346 Step 30 11347 MG3 to MGC: 11348 MEGACO/1 [207.176.47.89]: 26000 11349 Reply = 1242 { 11350 Context = 3 {Modify = TermC , Modify = EphC} 11351 } 11352 The MGC now updates the UserB connected to the Residential gateway 2 11353 with the local SDP information of UserC as remote SDP information. The 11354 Modify command with the remote SDP information is sent to RGW2, for 11355 the ephemeral termination. 11357 Step 31 11358 MGC to MG2: 11359 MEGACO/1 [216.33.33.61]: 27000 11360 Transaction = 1243 { 11361 Context = 2 { 11362 Modify = TermB { Event = 1234 { al/fl, al/on }} 11363 Modify = EphB { 11364 Media{ 11365 LocalControl{ mode = sendrecv }, 11366 Remote { 11367 v=0 11368 c=IN IP4 192.168.0.160 11369 m=audio 50000 RTP/AVP 4 11370 } ; RTP profile for G.723 is 4 11371 } 11372 } 11373 } 11374 } 11375 The RGW2 responds with the Modify response. 11377 Step 32 11378 MG2 to MGC: 11379 MEGACO/1 [207.176.47.89]: 28000 11380 Reply = 1243 { 11381 Context = 2 {Modify = TermB, Modify = EphB } 11382 } 11384 The RGW2 updates the remote SDP information and generates the Modify 11385 response towards MGC. The Media path is established between UserB and 11386 UserC. The two users can be in conversation. The following figure shows 11387 the different context created and the terminations in these Contexts. 11389 The MGC then generates a Modify command towards MG1. The UserA mode 11390 is set to Receive only so that UserA generate RTP is not directed 11391 towards UserB. 11393 Step 33 11394 MGC to MG1: 11395 MEGACO/1 [216.33.33.61]: 27000 11396 Transaction = 1244 { 11397 Context = 1 { 11398 Modify = TermA { 11399 Media { 11400 LocalControl { 11401 Mode = recvonly} 11402 } 11403 } 11404 Signals { } 11405 }, 11406 Modify = EphA { 11407 Media { 11408 LocalControl { 11409 Mode = recvonly} 11410 } 11411 } 11412 } 11414 Step 34 11415 MG1 to MGC: 11416 MEGACO/1 [209.110.59.34]: 25000 11417 Reply = 1244 { 11418 Context = 1 {Modify = TermA, Modify = EphA} 11419 } 11421 The Ephemeral termination EphB now has the Remote SDP information of 11422 UserC. This enables the media flow between UserB and UserC. UserA, even 11423 though is in valid context, doesn't generate any RTP media. 11425 The UserB after the establishment of RTP media with UserC goes flash 11426 hook to indicate the conference creation with UserA. The Notify event 11427 from RGW2 is reported to MGC using the Notify message. The UserB press 11428 flash button on the phone and the Residential gateway generates Notify 11429 command towards the MGC. 11431 Step 35 11432 MG2 to MGC: 11433 MEGACO/1 [207.176.47.89]: 26000 11434 Transaction = 3003 { 11435 Context = 2 { 11436 Notify = TermB {ObservedEvents =1234 { 11437 20050202T10000000:al/fl}} 11438 } 11440 } 11442 MGC generates the Notify. 11444 Step 36 11445 MGC to MG2: 11446 MEGACO/1 [216.33.33.61]: 27000 11447 Reply = 3003 { 11448 Context = 2 {Notify = TermB} 11449 } 11451 +------------------------------------------------------+ 11452 | RGW1 | 11453 | Context1 | 11454 | +---------------+ +---------------+ | 11455 | | | | | | 11456 | | | | | | 11457 | | Phy A | +-+ | Eph A | | 11458 <---->| |<--->|*|<---->| LocalA |<------ 11459 | | | +-+ | RemoteB | | 11460 | | | | | | 11461 | +---------------+ +---------------+ | 11462 | | 11463 +------------------------------------------------------+ 11465 +------------------------------------------------------+ 11466 | RGW2 | 11467 | Context2 | 11468 | +---------------+ +---------------+ | 11469 | | | | | | 11470 | | | | | | 11471 | | Phy B | +-+ | Eph B | | 11472 <---->| |<--->|*|<---->| LocalB |<------> 11473 | | | +-+ | RemoteC | | 11474 | | | | | | 11475 | +---------------+ +---------------+ | 11476 | | 11477 +------------------------------------------------------+ 11479 +------------------------------------------------------+ 11480 | RGW3 | 11481 | Context3 | 11482 | +---------------+ +---------------+ | 11483 | | | | | | 11484 | | | | | | 11485 | | Phy C | +-+ | Eph C | | 11486 <---->| |<--->|*|<---->| LocalC |<------> 11487 | | | +-+ | RemoteB | | 11488 | | | | | | 11489 | +---------------+ +---------------+ | 11490 | | 11491 +------------------------------------------------------+ 11493 This call flow section illustrates the call between three users. 11494 Already UserB and UserC are connected. The UserA remote SDP information 11495 points to the UserB. Now the MGC has to add one more ephemeral 11496 termination in each of the contexts created at the three different user 11497 Gateways. In this scenario we show that EphA, EphB and EphC are 11498 initially created. EphA of UserA points to EphB of UserB, but since the 11499 mode of the termination is "recvonly", this can be modified as required. 11500 The EphB or UserB is virtually connected to EphC of UserC. The MGC for 11501 connecting UserA and UserC generates Add command towards RGW1 for 11502 creating an Ephemeral termination. After receiving the response of the 11503 Add command indicating the creation of EphD, the MGC passes the local 11504 SDP information of EphD in the Add command towards UserC for creation 11505 of another Ephemeral termination. RGW3 creates Ephemeral Termination 11506 EphF with remote information pointing towards EphD of UserA. The MGC 11507 now after receiving response from UserC for EphF creation "Modifies" 11508 the EphD with the remote SDP information of EphF. Thus connecting the 11509 UserA and UserC. The topology descriptor is used to illustrate the 11510 control of media flows between the terminations in the context. 11512 The MGC generates Add command towards UserB for creating an Ephemeral 11513 termination. The Local SDP information of EphA is passed as remote SDP 11514 information for this newly created termination. After receiving the 11515 response from UserB indicating the successful creation of EphE, the 11516 local SDP information of EphE is passed to UserA as remote SDP 11517 information for EphA in the "Modify" command. UserA's EphA is modified 11518 to point towards the EphE of UserB. Now all the Users have 3 11519 termination in their contexts. Thus enabling them to participate in 11520 conference. The following paragraphs illustrates the different 11521 messages exchanged in detail, to illustrate the addition of new user 11522 in conference. The same can be extended to any number of users but 11523 for simplicity, only 3 users are considered. 11525 The MGC generates an add command towards MG1 for creation of another 11526 ephemeral termination so that the media information is directed towards 11527 UserC. The ephemeral termination is requested to be added in context 1. 11528 The topology descriptor that shows the directions of media flow inside 11529 the context is initially set to ISOLOATE so that there is no media 11530 immediately transferred between these termination within the context. 11532 Step 37 11533 MGC to MG1: 11534 MEGACO/1 [216.33.33.61]: 27000 11535 Transaction = 1244 { 11536 Context = 1 11537 Topology TermA,EphA,isolate, TermA, $, isolate, EphA,$, isolate{ 11538 Add = $ { 11539 Media { 11540 { 11541 LocalControl { 11542 Mode = ReceiveOnly, 11543 }, 11544 Local { 11545 v=0 11546 c=IN IP4 $ 11547 m=audio $ RTP/AVP 4 11548 } 11549 } 11550 } 11551 } 11552 } 11554 The Residential gateway now generates an ephemeral termination, with 11555 newly allocated resources for it. The IP address that is allocated is 11556 192.168.0.155 and the port number is 35000. The response is sent back 11557 to MGC. 11559 Step 38 11560 MG1 to MGC: 11561 MEGACO/1 [209.110.59.34]: 25000 11562 Reply = 1244 { 11563 Context = 1 { 11564 Add=EphD{ 11565 Media { 11566 Local { 11567 v=0 11568 c=IN IP4 192.168.0.155 11569 m=audio 35000 RTP/AVP 4 11570 a=recvonly 11571 } ; RTP profile for G.723 is 4 11572 } 11573 } 11574 } 11575 } 11576 } 11577 The MGC after receiving this information generates another ADD command 11578 towards the Residential gateway 3, such that the UserA SDP information 11579 is indicated to UserC. 11581 Step 39 11582 MGC to MG3: 11583 MEGACO/1 [216.33.33.61]: 27000 11584 Transaction = 1245 { 11585 Context = 3 11586 Topology TermC,EphC,bothway, TermC, $, bothway, EphC,$, bothway { 11587 Add = $ { 11588 Media { 11589 { 11590 LocalControl { 11591 Mode = sendrecv, 11592 }, 11593 Local { 11594 v=0 11595 c=IN IP4 $ 11596 m=audio $ RTP/AVP 4 11597 } 11598 Remote { 11599 v=0 11600 c=IN IP4 192.168.0.155 11601 m=audio 35000 RTP/AVP 4 11602 a=sendrecv 11603 } ; RTP profile for G.723 is 4 11604 } 11605 } 11606 } 11607 } 11609 The Residential gateway now generates an ephemeral termination, with 11610 newly allocated resources for it. The IP address that is allocated is 11611 192.168.0.100 and the port number is 55000. The response is sent back 11612 to MGC. 11614 Step 40 11615 MG3 to MGC: 11616 MEGACO/1 [209.110.59.34]: 25000 11617 Reply = 1245 { 11618 Context = 3 { 11619 Add=EphF{ 11620 Media { 11621 Local { 11622 v=0 11623 c=IN IP4 192.168.0.100 11624 m=audio 55000 RTP/AVP 4 11625 a=recvonly 11626 } ; RTP profile for G.723 is 4 11627 } 11628 } 11629 } 11630 } 11631 } 11632 The MGC after receiving the response from the UserC now indicates the 11633 same information towards the Residential gateway 1. Thus enabling media 11634 flow between the UserA and UserC. 11636 Step 41 11637 MGC to MG1: 11638 MEGACO/1 [216.33.33.61]: 27000 11639 Transaction = 1246 { 11640 Context = 1 11641 Topology TermA,EphA,isolate, TermA, EphD, bothway, EphA,EphD, isolate{ 11642 Modify = EphD { 11643 Media { 11644 { 11645 LocalControl { 11646 Mode = ReceiveOnly, 11647 }, 11648 Remote { 11649 v=0 11650 c=IN IP4 192.168.0.100 11651 m=audio 55000 RTP/AVP 4 11652 } 11653 } 11654 } 11655 } 11656 } 11658 The Residential gateway now generates the Modify response to the MGC. 11660 Step 42 11661 MG1 to MGC: 11662 MEGACO/1 [209.110.59.34]: 25000 11663 Reply = 1246 { 11664 Context = 1 { 11665 Modify=EphD 11666 } 11668 +------------------------------------------------------+ 11669 | RGW1 +---------------+ | 11670 | Context1 | EPHA | | 11671 | +---------------+ | Local A | | 11672 | | |-------~------| Remote B |<-------- 11673 | | | +------| | | 11674 | | Phy A | | +---------------+ | 11675 <---->| | | +---------------+ | 11676 | | | | | EphD | | 11677 | | | +------| Local A |<------> 11678 | | |<------------>| Remote C | | 11679 | +---------------+ +---------------+ | 11680 | | 11681 +------------------------------------------------------+ 11683 +------------------------------------------------------+ 11684 | RGW2 | 11685 | Context2 | 11686 | +---------------+ +---------------+ | 11687 | | | | | | 11688 | | | | | | 11689 | | Phy B | +-+ | Eph B | | 11690 <---->| |<--->|*|<---->| LocalB |<------> 11691 | | | +-+ | RemoteC | | 11692 | | | | | | 11693 | +---------------+ +---------------+ | 11694 | | 11695 +------------------------------------------------------+ 11697 +------------------------------------------------------+ 11698 | RGW3 +---------------+ | 11699 | Context2 | EPHC | | 11700 | +---------------+ | Local C | | 11701 | | |<------------>| Remote B |<-------> 11702 | | | +------>| | | 11703 | | Phy C | | +---------------+ | 11704 <---->| | | +---------------+ | 11705 | | | | | EphF | | 11706 | | | +------>| Local C |<------> 11707 | | |<------------>| Remote A | | 11708 | +---------------+ +---------------+ | 11709 | | 11710 +------------------------------------------------------+ 11712 The UserA and UserC are in conversation now. The UserB and UserC were 11713 already in conversation. Now the UserA and UserB need to be connected 11714 through RTP media. The MGC now generates ADD command towards the 11715 UserB of the Residential gateway 2. The Local information of UserA is 11716 indicated as the remote information of the newly created ephemeral 11717 termination. This ephemeral termination is requested to be 11718 added to the earlier context 2 itself. 11720 Step 43 11721 MGC to MG2: 11722 MEGACO/1 [216.33.33.61]: 27000 11723 Transaction = 1247 { 11724 Context = 2 11725 Topology TermB,EphB,bothway, TermB, $, bothway, EphB,$, bothway { 11726 Add = $ { 11727 Media { 11728 { 11729 LocalControl { 11730 Mode = sendrecv, 11731 }, 11732 Local { 11733 v=0 11734 c=IN IP4 $ 11735 m=audio $ RTP/AVP 4 11736 } 11737 Remote { 11739 v=0 11740 c=IN IP4 209.110.59.33 11741 m=audio 30000 RTP/AVP 4 11742 a=sendrecv 11743 } ; RTP profile for G.723 is 4 11744 } 11745 } 11746 } 11747 } 11749 The Residential gateway 2 now creates an ephemeral termination, with 11750 newly allocated resources for it. The IP address that is allocated is 11751 192.168.0.110 and the port number is 45000. The response is sent back 11752 to MGC. 11754 Step 44 11755 MG2 to MGC: 11756 MEGACO/1 [209.110.59.34]: 26000 11757 Reply = 1247 { 11758 Context = 2 { 11759 Add=EphE{ 11760 Media { 11761 Local { 11762 v=0 11763 c=IN IP4 192.168.0.110 11764 m=audio 45000 RTP/AVP 4 11765 a=recvonly 11766 } ; RTP profile for G.723 is 4 11767 } 11768 } 11769 } 11770 } 11771 } 11772 The MGC after receiving the local SDP information update the Ephemeral 11773 termination EphA of the Residential Gateway 1. The Modify command is 11774 generated towards RGW1. 11776 Step 45 11777 MGC to MG1: 11778 MEGACO/1 [216.33.33.61]: 27000 11779 Transaction = 1248 { 11780 Context = 1 11781 Topology TermA, EphA,bothway, TermA, EphD, bothway, EphA,EphD, bothway{ 11782 Modify = EphA { 11783 Media { 11784 { 11785 LocalControl { 11786 Mode = sendrecv, 11787 }, 11788 Remote { 11789 v=0 11790 c=IN IP4 192.168.0.110 11791 m=audio 45000 RTP/AVP 4 11792 } 11793 } 11794 } 11795 } 11796 } 11798 The Residential gateway now generates the Modify response to the MGC. 11800 Step 46 11801 MG1 to MGC: 11802 MEGACO/1 [209.110.59.34]: 25000 11803 Reply = 1248 { 11804 Context = 1 { 11805 Modify=EphA 11806 } 11807 All the terminations in all the contexts are made to sendrecv, thus all 11808 the three users are effectively in conference. The following figure 11809 shows the direction of media transfer between terminations inside each 11810 of the contexts. 11812 +------------------------------------------------------+ 11813 | RGW1 +---------------+ | 11814 | Context1 | EPHA | | 11815 | +---------------+ | Local A | | 11816 | | |<------------>| Remote B |<-------> 11817 | | | +------>| | | 11818 | | Phy A | | +---------------+ | 11819 <---->| | | +---------------+ | 11820 | | | | | EphD | | 11821 | | | +------>| Local A |<------> 11822 | | |<------------>| Remote C | | 11823 | +---------------+ +---------------+ | 11824 | | 11825 +------------------------------------------------------+ 11827 +------------------------------------------------------+ 11828 | RGW2 +---------------+ | 11829 | Context2 | EPHB | | 11830 | +---------------+ | Local B | | 11831 | | |<------------>| Remote C |<-------> 11832 | | | +----->| | | 11833 | | Phy B | | +---------------+ | 11834 <---->| | | +---------------+ | 11835 | | | | | EphD | | 11836 | | | +------>| Local B |<------> 11837 | | |<------------>| Remote A | | 11838 | +---------------+ +---------------+ | 11839 | | 11840 +------------------------------------------------------+ 11842 +------------------------------------------------------+ 11843 | RGW3 +---------------+ | 11844 | Context3 | EPHC | | 11845 | +---------------+ | Local C | | 11846 | | |<------------>| Remote B |<-------> 11847 | | | +----->| | | 11848 | | Phy C | | +---------------+ | 11849 <---->| | | +---------------+ | 11850 | | | | | EphF | | 11851 | | | +----->| Local C |<------> 11852 | | |<------------>| Remote A | | 11853 | +---------------+ +---------------+ | 11854 | | 11855 +------------------------------------------------------+ 11857 In this example UserB goes onhook. The onhook event is reported to MGC 11858 using the Notify message. 11860 Step 47 11861 MG2 to MGC: 11862 MEGACO/1 [207.176.47.89]:26000 11863 Transaction = 3006 { 11864 Context = 2 { 11865 Notify = TermB {ObservedEvents =1234 { 11866 20010202T10030000:al/on} 11867 } 11868 } 11869 } 11871 The MGC responds to the MG's notify message. 11872 Step 48 11873 MGC to MG2: 11874 MEGACO/1 [216.33.33.61]:27000 11875 Reply = 3006 { 11876 Context = 2 { 11877 Notify = TermB 11878 } 11879 } 11880 The MGC generates Subtract command towards the Residential Gateway 2 to 11881 delete all the terminations in the context 2. The statistics are 11882 requested only for the ephemeral terminations. 11884 Step 49 11885 MGC to MG2: 11886 MEGACO/1 [216.33.33.61]: 27000 11887 Transaction = 1249 { 11888 Context = 2 { 11889 Subtract = TermB {Audit{ }}, 11890 Subtract = EphB {Audit{Statistics}} 11891 Subtract = EphE {Audit{Statistics}} 11892 } 11893 } 11894 The MG2 responds to the subtract commands generated by MGC. 11896 Step 50 11897 MG2 to MGC: 11898 MEGACO/1 [209.110.59.34]:25000 11899 Reply = 1249 { 11900 Context = 2 { 11901 Subtract = TermB 11902 Subtract = EphB { 11903 Statistics { 11904 rtp/ps=987, ; packets sent 11905 nt/os=65432, ; octets sent 11906 rtp/pr=1234, ; packets received 11907 nt/or=56789, ; octets received 11908 rtp/pl=10, ; % packets lost 11909 rtp/jit=30, 11910 rtp/delay=30 ; average latency 11911 } 11912 Subtract = EphE { 11913 Statistics { 11914 rtp/ps=1987, ; packets sent 11915 nt/os=65432, ; octets sent 11916 rtp/pr=1234, ; packets received 11917 nt/or=56789, ; octets received 11918 rtp/pl=10, ; % packets lost 11919 rtp/jit=30, 11920 rtp/delay=30 ; average latency 11921 } 11923 } 11924 } 11925 } 11926 The MGC generates Subtract command for the ephemeral termination EphA 11927 towards the RGW1. 11929 Step 51 11930 MGC to MG2: 11931 MEGACO/1 [216.33.33.61]: 27000 11932 Transaction = 1250 { 11933 Context = 1 { 11934 Subtract = EphA {Audit{Statistics}} 11935 } 11937 } 11938 The MG1 responds to the subtract commands generated by MGC. 11940 Step 52 11941 MG1 to MGC: 11942 MEGACO/1 [209.110.59.34]:25000 11943 Reply = 1250 { 11944 Context = 2 { 11945 Subtract = EphA { 11946 Statistics { 11947 rtp/ps=987, ; packets sent 11948 nt/os=65432, ; octets sent 11949 rtp/pr=1234, ; packets received 11950 nt/or=56789, ; octets received 11951 rtp/pl=10, ; % packets lost 11952 rtp/jit=30, 11953 rtp/delay=30 ; average latency 11954 } 11955 } 11956 } 11957 } 11958 The MGC generates similar command towards UserC at RGW2, for 11959 subtracting the ephemeral termination EphC. 11961 Step 53 11962 MGC to MG3: 11963 MEGACO/1 [216.33.33.61]: 27000 11964 Transaction = 1251 { 11965 Context = 3 { 11966 Subtract = EphC {Audit{Statistics}} 11967 } 11968 } 11969 The MG3 responds to the subtract commands generated by MGC. 11971 Step 54 11972 MG3 to MGC: 11973 MEGACO/1 [209.110.59.34]:25000 11974 Reply = 1251 { 11975 Context = 3 { 11976 Subtract = EphC { 11977 Statistics { 11978 rtp/ps=987, ; packets sent 11979 nt/os=65432, ; octets sent 11980 rtp/pr=1234, ; packets received 11981 nt/or=56789, ; octets received 11982 rtp/pl=10, ; % packets lost 11983 rtp/jit=30, 11984 rtp/delay=30 ; average latency 11985 } 11986 } 11987 } 11989 } 11990 Media connection is present only between UserA and UserC as shown in 11991 figure below. 11993 +------------------------------------------------------+ 11994 | RGW1 | 11995 | Context1 | 11996 | +---------------+ +---------------+ | 11997 | | | | | | 11998 | | | | | | 11999 | | Phy A | | Eph D | | 12000 <---->| |<------------>| LocalA |<------> 12001 | | | | RemoteC | | 12002 | | | | | | 12003 | +---------------+ +---------------+ | 12004 | | 12005 +------------------------------------------------------+ 12007 +------------------------------------------------------+ 12008 | RGW3 | 12009 | Context3 | 12010 | +---------------+ +---------------+ | 12011 | | | | | | 12012 | | | | | | 12013 | | Phy C | | Eph F | | 12014 <---->| |<------------>| LocalC |<------> 12015 | | | | RemoteA | | 12016 | | | | | | 12017 | +---------------+ +---------------+ | 12018 | | 12019 +------------------------------------------------------+ 12021 After completing the conversation with UserA, UserC goes onhook. The 12022 same is indicated towards MGC in the Notify command. 12024 Step 55 12025 MG3 to MGC: 12026 MEGACO/1 [209.110.59.34]:25000 12027 Transaction = 4004 { 12028 Context = 3 { 12029 Notify = TermC {ObservedEvents =1111 { 12030 20060202T10030000:al/on} 12031 } 12032 } 12033 } 12035 The MGC responds to the MG's notify message. 12037 Step 56 12038 MGC to MG3: 12039 MEGACO/1 [216.33.33.61]: 27000 12040 Reply = 4004 { 12041 Context = 3 { 12042 Notify = TermC 12043 } 12044 } 12046 The MGC generates a Modify command towards the RGW1 for applying busy 12047 tone to the called subscriber. The mode of both terminations is set to 12048 receive only. 12050 Step 57 12051 MGC to MG1: 12052 MEGACO/1 [216.33.33.61]: 27000 12053 Transaction = 1252 { 12054 Context = 1 { 12055 Modify = TermA { 12056 Signals {cg/bt} 12057 Media { 12058 LocalControl { 12059 Mode = recvonly} 12060 } 12061 }, 12062 Modify = EphD { 12063 Media { 12064 LocalControl { 12065 Mode = recvonly} 12066 } 12067 } 12068 } 12069 } 12070 } 12072 The MG1 responds to this modify request. 12074 Step 58 12075 MG1 to MGC: 12076 MEGACO/1 [209.110.59.34]: 25000 12077 Reply = 1252 { 12078 Context = 1 { 12079 Modify= TermA, Modify = EphD} 12080 } 12082 The MGC generates Subtract command RGW3. 12084 Step 59 12085 MGC to MG3: 12087 MEGACO/1 [216.33.33.61]: 27000 12088 Transaction = 1254 { 12089 Context = 3 { 12090 Subtract = TermC {Audit{ }}, 12091 Subtract = EphF {Audit{Statistics}} 12092 } 12093 } 12094 The MG3 responds to the subtract commands generated by MGC. 12096 Step 60 12097 MG3 to MGC: 12098 MEGACO/1 [209.110.59.34]:25000 12099 Reply = 1254 { 12100 Context = 3 { 12101 Subtract = TermC 12102 Subtract = EphF { 12103 Statistics { 12104 rtp/ps=987, ; packets sent 12105 nt/os=65432, ; octets sent 12106 rtp/pr=1234, ; packets received 12107 nt/or=56789, ; octets received 12108 rtp/pl=10, ; % packets lost 12109 rtp/jit=30, 12110 rtp/delay=30 ; average latency 12111 } 12112 } 12113 } 12114 } 12116 The UserA goes onhook after hearing the busy tone. The same is 12117 indicated to MGC using the Notify command. 12119 Step 61 12120 MG1 to MGC: 12121 MEGACO/1 [209.110.59.34]: 25000 12122 Transaction = 2002 { 12123 Context = 1 { 12124 Notify = TermA {ObservedEvents =1112 { 12125 20010202T10010000:al/on} 12126 } 12127 } 12129 MGC after receiving the Notify command responds back with the Notify 12130 response. 12132 Step 62 12133 MGC to MG1: 12134 MEGACO/1 [216.33.33.61]: 27000 12135 Reply = 2002 { 12136 Context = 1 {Notify = TermA} 12138 } 12140 Step 63: 12141 MGC to MG1 12142 MEGACO/1 [216.33.33.61]: 27000 12143 Transaction = 1253 { 12144 Context = 1 { 12145 Subtract = TermA {Audit{ }}, 12146 Subtract = EphD {Audit{Statistics}} 12147 } 12148 } 12149 The MG subtracts the two terminations from the context. The context 12150 itself is deleted with the "subtract" of the last termination from it. 12151 The MG1 responds to this transaction from MGC with statistics on 12152 ephemeral termination. 12154 Step 64 12155 MG1 to MGC: 12156 MEGACO/1 [209.110.59.34]:25000 12157 Reply = 1253 { 12158 Context = 1 { 12159 Subtract = TermA 12160 Subtract = EphD { 12161 Statistics { 12162 rtp/ps=1234, ; packets sent 12163 nt/os=56789, ; octets sent 12164 rtp/pr=987, ; packets received 12165 nt/or=65432, ; octets received 12166 rtp/pl=10, ; % packets lost 12167 rtp/jit=30, 12168 rtp/delay=30 ; average latency 12169 } 12170 } 12171 } 12172 } 12174 10.0 SDP for ATM 12176 10.1 This section illustrates the usage of SDP for ATM. The draft "ATM 12177 SDP" [ref] is taken as reference. The two call establishment methods 12178 namely "Forward Bearer Connection Set-up model" and the "Backward 12179 Connection Set-up model" are considered. In the first method, the ATM 12180 connection establishment is initiated by the Originating Media Gateway 12181 whereas in the second method the Terminating Media Gateway initiates 12182 the ATM connection establishment. 12184 The SDP atrribute "eecid" is used in both the methods. The "eecid" 12185 is a means of correlating service-level connections with underlying 12186 ATM bearer connections. 12188 In this example we assume that the Originating Media Gateway is 12189 controlled by MGC1 and terminating Gateway controlled by MGC2. The 12190 communication protocol between the two MGC's is out-of-scope of this 12191 draft. 12193 10.1.1 Forward Bearer Connection Set-up Method 12195 In this call scenario we assume that the RGW1 and RGW2 are having ATM 12196 connectivity towards the PDN network. RGW1 is controlled by MGC1 and 12197 RGW2 is controlled by MGC2. The call is initiated by user connected 12198 to the RGW1. 12200 ______________________________________________________________________ 12201 | | | 12202 RGW1 | MGC1 | MGC2 | RGW2 12203 __________________|_________________|_______________|________________ 12204 | | | | 12205 |<----------------| |-------------->| 12206 | Initial Modify | | Initial Modify| 12207 |---------------->| |<--------------| 12208 | Modify Resp | | Modify Resp | 12209 ------>| | | | 12210 OffHook|---------------->| | | 12211 | Notify OffHook | | | 12212 |<----------------| | | 12213 | Notify Resp | | | 12214 <-------| | | | 12215 Dial Tone| | | | 12216 ------->| | | | 12217 Digits |---------------->| | | 12218 | Notify Digits | | | 12219 |<----------------| | | 12220 | Notify Resp |--------------->| | 12221 | |MGC-MGC protocol| | 12222 | | Address info | | 12223 | | |-------------->| 12224 | | | Modify PhyB |-------> 12225 | | |<--------------|Ring 12226 | | | Modify Resp | 12227 | |<---------------| | 12228 | | MGC-MGC Ring indication | 12229 |<----------------| | | 12230 | Add PhyA SD:cg/rt | | 12231 <--------| Add $ Local Unspecified | | 12232 Ringback |---------------->| | | 12233 | Add PhyA Resp | | | 12234 | Add EphA Resp | | |<-------- 12235 | | |<--------------|OffHook 12236 | | | Notify OffHook| 12237 | |--------------->| | 12238 | | MGC-MGC SDPexchange | 12239 | | |-------------->| 12240 | | | Add PhyB | 12241 | | | Add $ Local Unspecified 12242 | | | Remote Specified 12243 | | |<--------------| 12244 | | | Add PhyB Resp | 12245 | | | Add EphB Local Specified 12246 | |<---------------| | 12247 | | MGC-MGC SDPexchange | 12248 |<----------------| | | 12249 | Modify EphA Remote Specified | | 12250 |---------------->| | | 12251 | Modify EphA Resp| | | 12252 |/------------------------------------------------\| 12253 | MEDIA | 12254 |\------------------------------------------------/| 12255 ------->| | | | 12256 OnHook |---------------->| | | 12257 | Notify OnHook | | | 12258 |<----------------|--------------->| | 12259 | Notify Resp | MGC-MGC teardowninfo | 12260 | | |-------------->| 12261 | | | Modify PhyB cg/bt 12262 | | |<--------------| 12263 |<----------------| | | 12264 | Sub PhyA | | |<------- 12265 | Sub EphA | |<--------------| OnHook 12266 |---------------->| | Notify OnHook | 12267 | Sub PhyA Resp | |-------------->| 12268 | Sub EphA Reps Statistics |-------------->| 12269 | | | Sub PhyB | 12270 | | | Sub EphB | 12271 | | |<--------------| 12272 | | | Sub PhyB Resp | 12273 | | | Sub EphB Resp Statistics 12274 _________|_________________|________________|_______________|________ 12276 In Step 1 the MGC1 generates the Modify message towards the 12277 RGW1 and similarly MGC2 generates Modify message towards the RGW2 to 12278 check for off hook on the terminations. (A wildcard command may also be 12279 used in this scenario but for simplicity we consider only command to 12280 specific terminations). Modify message generated only for Residential 12281 gateway 1 is shown, similar message is sent to the other Residential 12282 gateway also. We are not considering the embedded signal and event 12283 descriptors here. The MGC in NULL context generates the command to the 12284 specific termination TermA. The off hook event of the analog 12285 supervision package is used here. The request identifier specified here 12286 in the example is 1111. The mode of the termination is set to receive 12287 only. The stream parameter is used with only the Local control 12288 descriptor. 12290 Step 1 12292 MGC1 to RGW1: 12293 MEGACO/1 [216.33.33.61]: 27000 12294 Transaction = 1234 { 12295 Context = - { 12296 Modify = TermA { 12297 Media { 12298 LocalControl { 12299 Mode = Receiveonly} 12300 }, 12301 Events = 1111 {al/of} 12302 } 12303 } 12304 } 12306 MG after receiving the command from MGC1 accepts it and responds with 12307 the transaction reply. 12309 Step 2 12311 MG1 to MGC2: 12312 MEGACO/1 [209.110.59.34]: 25000 12313 Reply = 1234 { 12314 Context = - {Modify = TermA} 12315 } 12317 In this example User A goes off hook. This event is detected by the 12318 RGW1 and constructs and sends the Notify message towards the MGC1. The 12319 MG uses the same request id (1111) sent by the MGC1 in its initial 12320 command. The timestamp of the detected event is also passed as 12321 parameter to the observed event. 12323 Step 3 12324 MG1 to MGC1: 12325 MEGACO/1 [209.110.59.34]: 25000 12326 Transaction = 2000 { 12327 Context = - { 12328 Notify = TermA {ObservedEvents =1111 { 12329 20010202T10000000:al/of}} 12330 } 12332 MGC1 generates the Notify response and responds with more messages 12333 towards the MG that generated the Notify command. 12335 Step 4 12336 MGC1 to MG1: 12337 MEGACO/1 [216.33.33.61]: 27000 12338 Reply = 2000 { 12339 Context = - {Notify = TermA} 12340 } 12342 The MGC1 in the present example issues a MODIFY command. The Modify 12343 command contains a signal descriptor for the application of dial tone 12344 to the user. The digit map descriptor here is used to configure a digit 12345 map on the termination. The digit map name used in the example is 12346 Dmap1 and the dial pattern is 2XXX. The event descriptor lists digit 12347 map completion event of the DTMF detection package and onhook of the 12348 analog line supervision package. The request id specified in the event 12349 descriptor is 1112. 12351 Step 5 12352 MGC1 to MG1: 12353 MEGACO/1 [216.33.33.61]: 27000 12354 Transaction = 1235 { 12355 Context = - { 12356 Modify = TermA { 12357 Signals {cg/dt}, 12358 DigitMap= Dmap1 {(2XXX)} 12359 Events = 1112 { 12360 al/on, dd/ce {DigitMap=Dmap1} 12361 }, 12362 } 12363 } 12364 } 12366 MG after receiving the Modify command after validation responds to 12367 the MGC1 and starts processing the descriptors listed. 12369 Step 6 12370 MG1 to MGC1: 12371 MEGACO/1 [209.110.59.34]: 25000 12372 Reply = 1235 { 12373 Context = - {Modify = TermA} 12374 } 12376 The descriptors are processed in the order that is specified by the 12377 MGC1. In this example the order of descriptor is signal descriptor, 12378 digit map descriptor followed by Events descriptor. The MG first 12379 processes the signal descriptor. The dial tone is applied to the 12380 Termination specified. The Digit map is updated in the Database of the 12381 termination. The Digit map said to be ACTIVE on the termination as the 12382 digit map completion event is listed in the events descriptor with the 12383 digit map name. A digit map is activated whenever a new event 12384 descriptor is applied to the termination or embedded event descriptor 12385 is activated, and that event descriptor contains a digit map 12386 completion event which itself contains a digit map parameter. UserA 12387 after receiving the dial tone starts dialing digits. In this example 12388 we will not dwell into the different possible cases of digit dialing 12389 by the user. It's assumed that the user dials digits that match the 12390 pattern specified in the digit map. Lets assume that the user has 12391 dialed 2992. MG detects the digits dialed and reports the same as 12392 parameter to the digit map completion event. A notify command is 12393 generated from MG1 to MGC1. The MG again used the same request 12394 identifier as specified by the MGC1. 12396 Step 7 12397 MG1 to MGC1: 12398 MEGACO/1 [209.110.59.34]: 25000 12399 Transaction = 2001 { 12400 Context = - { 12401 Notify = TermA {ObservedEvents =1112 { 12402 20010202T10010000:dd/ce {ds="2992", Meth=FM}}} 12403 } 12404 } 12406 MGC1 after receiving the Notify command responds back with the Notify 12407 response. 12409 Step 8 12410 MGC1 to MG1: 12411 MEGACO/1 [216.33.33.61]: 27000 12412 Reply = 2001 { 12413 Context = - {Notify = TermA} 12414 } 12416 MGC after receiving the Notify command starts analyzing the dialed 12417 digits. In this example it is assumed that the called subscriber is 12418 connected to the RGW2, which is controlled by MGC2. The MGC1 communicates 12419 to MGC2 that there is a call initiation for UserB. 12421 The MGC1 generates a transaction with two commands clubbed into the same 12422 Action. The first command is to create a new context and add the 12423 physical termination TermA into it. The second command is generated 12424 to create an ephemeral termination and add the created termination 12425 in the same context that was created because of the earlier command. 12426 Here we assumed a single set of SDP information indicating that 12427 Reserve group is not used. The Reserve Value feature is also not used. 12428 The MGC1 thus initiates service-level call establishment by sending the 12429 following control message to the RGW1. 12431 Step 9 12432 MGC to MG1: 12433 MEGACO/1 [216.33.33.61]: 27000 12434 Transaction = 1236 { 12435 Context = $ { 12436 Add = TermA { 12437 Signals {cg/rt} 12438 } 12439 Add = $ { 12440 Media { 12441 { 12442 LocalControl { 12443 Mode = Receiveonly, 12444 }, 12445 Local { 12446 v=0 12447 o=- 2873397497 0 ATM - - 12448 s=- 12449 c=ATM - - 12450 t=0 0 12451 m=audio $ - - 12452 } 12453 } 12454 } 12455 } 12456 } 12458 In this example the connection field specifies only the connection type 12459 (ATM). The other fields are unspecified as they are not needed. 12460 The RGW1 in its response indicates its NSAP address. In this example the 12461 RGW1 creates a context with contextID 1. The physical termination TermA 12462 is added to context 1. The mode of the physical termination was earlier 12463 set to Receiveonly and in this message the ephemeral termination is 12464 requested to create with Receiveonly mode. The ephemeral termination 12465 created in this example is EphA. 12467 Step 10 12468 RGW1 to MGC1: 12469 MEGACO/1 [209.110.59.34]: 25000 12470 Reply = 1236 { 12471 Context = 1 { 12472 Add = TermA, 12473 Add=EphA{ 12474 Media { 12475 Local { 12476 v=0 12477 o=- 2873397496 0 ATM 12478 NSAP 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 12479 s=- 12480 c=ATM NSAP 12481 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 12482 t=0 0 m=audio - AAL2/ITU 8 12483 a=recvonly 12484 } 12485 } 12486 } 12487 } 12488 } 12489 } 12491 MGC2 after receiving the message from MGC1 generates an Add command 12492 towards the RGW2. The ContextID specified in the action is $. The first 12493 command adds the physical termination TermB to the newly created context. 12494 The Signal descriptor for this termination lists the ring signal of 12495 the analog line supervision package. This alerting signal is applied to 12496 the termination of the TermB. The Event descriptor specifies offhook event 12497 of the analog line supervision package. The second Add is meant to create 12498 an ephemeral termination. MGC2 has the local information for the 12499 ephemeral termination EphA in the RGW1. This information is passed 12500 as remote information to the RGW2. The new ephemeral termination that 12501 will be created will take these parameters as the remote SDP 12502 information. 12504 Step 11 12505 MGC2 to RGW2: 12506 MEGACO/1 [216.33.33.62]:27000 12507 Transaction = 1237 { 12508 Context = $ { 12509 Add = TermB { Media { 12510 LocalControl {Mode = Receiveonly} }, 12511 Signals {al/ri} 12512 Events =1234{al/of {events = 1235 {al/on}}}, 12513 }, 12514 Add = $ {Media { 12515 LocalControl { 12516 Mode = sendrecv, 12517 }, 12518 Local { 12519 v=0 12520 o=- 2873397497 0 ATM - - 12521 s=- 12522 c=ATM - - 12523 t=0 0 12524 m=audio $ - - 12525 }, 12526 Remote { 12527 v=0 12528 o=- 2873397496 0 ATM 12529 NSAP 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 12530 s=- 12531 c=ATM NSAP 12532 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 12533 t=0 0 m=audio - AAL2/ITU 8 12534 } 12535 } 12536 } 12537 } 12538 } 12539 } 12541 RGW2 after receiving the new transaction from MGC2 starts processing 12542 it. It creates a new context with contextID 2. It adds the physical 12543 termination TermB to that context and start processing the descriptor 12544 specified in the command. The signal descriptor lists "ring" signal 12545 to be applied on the termination. The event descriptor lists the 12546 off hook event. The RGW2 creates an ephemeral termination with 12547 TerminationId EphB. The local information is under-specified from 12548 the MGC2. The RGW2 allocates the necessary resources for processing the 12549 media descriptor for the ephemeral termination. The RGW2 responds 12550 to the MGC2 by providing an SDP descriptor with a locally assigned 12551 "eecid". The MG2 responds to MGC with the following transaction reply. 12553 Step 12 12554 RGW2 to MGC2: 12555 MEGACO/1 [207.176.47.90]: 26000 12556 Reply = 1237 { 12557 Context = 2 { 12558 Add = TermB, 12559 Add = EphB{ 12560 Media { 12561 Local { 12562 v=0 12563 o=- 2873397714 0 ATM 12564 NSAP 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 12565 s=- 12566 c=ATM NSAP 12567 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 12568 t=0 0 12569 m=audio - AAL2/ITU 8 12570 a=eecid:B3D58E32 12571 } 12572 } 12573 } 12574 } 12575 } 12577 The MGC2 waits for the UserB to go offhook. Once the UserB goes offhook, 12578 RGW2 reports the notification of the offhook event to the MGC2. 12580 Step 13 12581 RGW2 to MGC2: 12582 MEGACO/1 [207.176.47.90]: 26000 12583 Transaction = 3000 { 12584 Context = 2 { 12585 Notify = TermB {ObservedEvents =1234 { 12586 20000202T10020000:al/of}} 12587 } 12588 } 12589 The MGC2 responds to the RGW2 with the Notify response. 12591 Step 14 12592 MGC2 to RGW2: 12593 MEGACO/1 [216.33.33.60]: 27000 12594 Reply = 3000 { 12595 Context = 2 {Notify = TermB} 12596 } 12597 The MGC2 generates a transaction towards RGW2 with two commands in one 12598 action. It changes the mode of both the terminations to sendrecv. The 12599 Signal descriptor of the Modify command for the first termination, 12600 stops the ring signal already applied on the termination and the event 12601 descriptor lists the onhook event. 12603 Step 15: 12604 MGC to MG2: 12605 MEGACO/1 [216.33.33.60]: 27000 12606 Transaction = 1238 { 12607 Context = 2 { 12608 Modify = TermB { 12609 Signals { } ; to turn off ringing 12610 Events = 1235 {al/on}, 12611 Media { 12612 LocalControl { 12613 Mode = SendRecv, 12614 } 12615 } 12616 } 12617 Modify = EphB{ 12618 Media { 12619 LocalControl { 12620 Mode = SendRecv, 12621 } 12622 } 12623 } 12624 } 12626 The MG2 responds to the request from MGC. 12628 Step 16 12629 RGW2 to MGC2: 12630 MEGACO/1 [207.176.47.90]: 26000 12631 Reply = 1238 { 12632 Context = 2 {Modify = TermB , Modify = EphB} 12633 } 12635 The MGC2 generates message to the MGC1 to indicate the "eecid" generated 12636 by the RGW2. The MGC1 generates a Modify message towards the RGW1 to 12637 stop the ringback tone and to report the remote SDP information for 12638 the ephemeral termination EphA. The mode of the two terminations 12639 TermA and EphA is set to send receive. 12641 Step 17 12642 MGC1 to RGW1: 12643 MEGACO/1 [216.33.33.61]: 27000 12644 Transaction = 1239 { 12645 Context = 1 { 12646 Modify = TermA { 12647 Media { 12648 LocalControl { 12649 Mode = sendrecv} 12650 } 12651 } 12652 Signals { } 12653 }, 12654 Modify = EphA { 12655 Media { 12656 LocalControl { 12657 Mode = sendrecv} 12658 Local { 12659 v=0 12660 o=- 2873397874 0 ATM - - 12661 s=- 12662 c=ATM - - 12663 t=0 0 12664 m=audio $ - - 12665 a=bearerType:SVC on 12667 } 12668 Remote { 12669 v=0 12670 o=- 2873397714 0 ATM 12671 NSAP 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 12672 s=- 12673 c=ATM NSAP 12674 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 12675 t=0 0 12676 m=audio $ AAL2/ITU 8 12677 a=eecid:B3D58E32 12678 } 12679 } 12680 } 12681 } 12682 } 12683 } 12684 The empty signal descriptor in the Modify command for termination 12685 TermA, specifies to stop the ringback tone at the calling end. The 12686 remote SDP information specifies the "eecid" to be used for the 12687 ephemeral termination EphA. The RGW1 using this "eecid" initiates the 12688 connection establishment. The Local SDP information with the media 12689 attribute "bearerType" indicates that an SVC is to be used and that the 12690 flag is on i.e. the SVC is to be set up by the 12691 terminating Media Gateway. The mode is changed to send receive. RGW1 12692 responds to the MGC with the response for the Modify commands. 12694 Step 18 12695 MG1 to MGC: 12696 MEGACO/1 [209.110.59.34]: 25000 12697 Reply = 1239 { 12698 Context = 1 {Modify = TermA, Modify = EphA} 12699 } 12700 The two users can exchange the media. The call can be termination 12701 either by the calling user or the called user. In this example it is 12702 assumed that the calling party has gone on-hook The UserA after the 12703 conversation goes onhook indicating the tearing down of the call. The 12704 same is reported in the Notify command from RGW1 to MGC1. 12706 Step 19 12707 RGW1 to MGC1: 12708 MEGACO/1 [209.110.59.34]:25000 12709 Transaction = 2002 { 12710 Context = 1 { 12711 Notify = TermA {ObservedEvents =1112 { 12712 20010202T10030000:al/on} 12713 } 12714 } 12715 The MGC1 responds to the MG1s Notify message. 12717 Step 20 12718 MGC1 to RGW1: 12719 MEGACO/1 [216.33.33.61]:27000 12720 Reply = 2002 { 12721 Context = 1 { 12722 Notify = TermA 12723 } 12724 } 12726 The MGC2 after receiving the information from MGC1, generates a Modify 12727 command towards the RGW2 for applying busy tone to the called 12728 subscriber. The mode of both terminations is set to receive only. 12730 Step 21 12731 MGC2 to RGW2: 12732 MEGACO/1 [216.33.33.60]: 27000 12733 Transaction = 1240 { 12734 Context = 2 { 12735 Modify = TermB { 12736 Signals {cg/bt} 12737 Media { 12738 LocalControl { 12739 Mode = recvonly} 12740 } 12741 }, 12742 Modify = EphB { 12743 Media { 12744 LocalControl { 12745 Mode = recvonly} 12746 } 12747 } 12749 } 12750 } 12751 } 12753 The RGW2 responds to this modify request. 12755 Step 22 12756 RGW2 to MGC2: 12757 MEGACO/1 [207.176.47.90]: 26000 12758 Reply = 1240 { 12759 Context = 2 { 12760 Modify= TermB, Modify = EphB} 12761 } 12763 The MGC1 generates transactions with two subtracts commands one for 12764 physical and other for ephemeral terminations. 12766 Step 23: 12767 MGC1 to RGW1 12768 MEGACO/1 [216.33.33.61]: 27000 12769 Transaction = 1241 { 12770 Context = 1 { 12771 Subtract = TermA {Audit{ }}, 12772 Subtract = EphA {Audit{Statistics}} 12773 } 12774 } 12775 The RGW1 subtracts the two terminations from the context. The context 12776 itself is deleted with the subtract of the last termination from it. 12777 The RGW1 responds to this transaction from MGC1 with statistics on 12778 ephemeral termination. 12780 Step 24 12781 RGW1 to MGC1: 12782 MEGACO/1 [209.110.59.34]:25000 12783 Reply = 1241 { 12784 Context = 1 { 12785 Subtract = TermA 12786 Subtract = EphA { 12787 Statistics { 12788 rtp/ps=1234, ; packets sent 12789 nt/os=56789, ; octets sent 12790 rtp/pr=987, ; packets received 12791 nt/or=65432, ; octets received 12792 rtp/pl=10, ; % packets lost 12793 rtp/jit=30, 12794 rtp/delay=30 ; average latency 12795 } 12796 } 12797 } 12798 } 12800 The User B after going onhook, the RGW2 generates Notify command 12801 towards the MGC2. 12803 Step 25 12804 RGW2 to MGC2: 12805 MEGACO/1 [207.176.47.90]: 26000 12806 Transaction = 3001 { 12807 Context = 2 { 12808 Notify = TermB {ObservedEvents =1235 { 12809 20000202T10070000:al/on}} 12810 } 12811 } 12812 The MGC2 responds to the RGW2 with the Notify response. 12814 Step 26 12815 MGC2 to RGW2: 12816 MEGACO/1 [216.33.33.61]: 27000 12817 Reply = 3001 { 12818 Context = 2 {Notify = TermB} 12819 } 12821 The MGC2 generates subtract command towards RGW2 for removing TermB 12822 from valid context. 12824 Step 26 12825 MGC2 to RGW2: 12826 MEGACO/1 [216.33.33.61]: 27000 12827 Transaction = 1242 { 12828 Context = 2 { 12829 Subtract = TermB {Audit{ }}, 12830 Subtract = EphB {Audit{Statistics}} 12831 } 12832 } 12833 The RGW2 responds to the subtract commands generated by MGC2. 12835 Step 27 12836 RGW2 to MGC2: 12837 MEGACO/1 [207.176.47.89]:26000 12838 Reply = 1242 { 12839 Context = 2 { 12840 Subtract = TermB 12841 Subtract = EphB { 12842 Statistics { 12843 rtp/ps=987, ; packets sent 12844 nt/os=65432, ; octets sent 12845 rtp/pr=1234, ; packets received 12846 nt/or=56789, ; octets received 12847 rtp/pl=10, ; % packets lost 12848 rtp/jit=30, 12849 rtp/delay=30 ; average latency 12850 } 12852 } 12853 } 12854 } 12856 The two users UserA and UserB are ready for initiating/receiving further 12857 calls. 12859 10.1.2 Backward Bearer Connection Set-up Method 12861 In this call scenario we assume that the RGW1 and RGW2 are having ATM 12862 connectivity towards the PDN network. RGW1 is controlled by MGC1 and 12863 RGW2 is controlled by MGC2. The call is initiated by user connected 12864 to the RGW1. 12866 ______________________________________________________________________ 12867 | | | 12868 RGW1 | MGC1 | MGC2 | RGW2 12869 __________________|_________________|_______________|________________ 12870 | | | | 12871 |<----------------| |-------------->| 12872 | Initial Modify | | Initial Modify| 12873 |---------------->| |<--------------| 12874 | Modify Resp | | Modify Resp | 12875 ------>| | | | 12876 OffHook|---------------->| | | 12877 | Notify OffHook | | | 12878 |<----------------| | | 12879 | Notify Resp | | | 12880 <-------| | | | 12881 Dial Tone| | | | 12882 ------->| | | | 12883 Digits |---------------->| | | 12884 | Notify Digits | | | 12885 |<----------------| | | 12886 | Notify Resp |--------------->| | 12887 | |MGC-MGC protocol| | 12888 | | Address info | | 12889 | | |-------------->| 12890 | | | Modify PhyB |-------> 12891 | | |<--------------|Ring 12892 | | | Modify Resp | 12893 | |<---------------| | 12894 | | MGC-MGC Ring indication | 12895 |<----------------| | | 12896 | Add PhyA SD:cg/rt | | 12897 <--------| Add $ Local Unspecified | | 12898 Ringback |---------------->| | | 12899 | Add PhyA Resp | | | 12900 | Add EphA Resp | | |<-------- 12901 | | |<--------------|OffHook 12902 | | | Notify OffHook| 12903 | |--------------->| | 12904 | | MGC-MGC SDPexchange | 12905 | | |-------------->| 12906 | | | Add PhyB | 12907 | | | Add $ Local Unspecified 12908 | | | Remote Specified 12909 | | |<--------------| 12910 | | | Add PhyB Resp | 12911 | | | Add EphB Local Specified 12912 | |<---------------| | 12913 | | MGC-MGC | | 12914 |<----------------| | | 12915 | Modify EphA sendrecv | | 12916 |---------------->| | | 12917 | Modify EphA Resp| | | 12918 |/------------------------------------------------\| 12919 | MEDIA | 12920 |\------------------------------------------------/| 12921 ------->| | | | 12922 OnHook |---------------->| | | 12923 | Notify OnHook | | | 12924 |<----------------|--------------->| | 12925 | Notify Resp | MGC-MGC teardowninfo | 12926 | | |-------------->| 12927 | | | Modify PhyB cg/bt 12928 | | |<--------------| 12929 |<----------------| | | 12930 | Sub PhyA | | |<------- 12931 | Sub EphA | |<--------------| OnHook 12932 |---------------->| | Notify OnHook | 12933 | Sub PhyA Resp | |-------------->| 12934 | Sub EphA Reps Statistics |-------------->| 12935 | | | Sub PhyB | 12936 | | | Sub EphB | 12937 | | |<--------------| 12938 | | | Sub PhyB Resp | 12939 | | | Sub EphB Resp Statistics 12940 _________|_________________|________________|_______________|________ 12942 In Step 1 the MGC1 generates the Modify message towards the 12943 RGW1 and similarly MGC2 generates Modify message towards the RGW2 to 12944 check for off hook on the terminations. (A wildcard command may also be 12945 used in this scenario but for simplicity we consider only command to 12946 specific terminations). Modify message generated only for Residential 12947 gateway 1 is shown, similar message is sent to the other Residential 12948 gateway also. We are not considering the embedded signal and event 12949 descriptors here. The MGC in NULL context generates the command to the 12950 specific termination TermA. The off hook event of the analog 12951 supervision package is used here. The request identifier specified here 12952 in the example is 1111. The mode of the termination is set to receive 12953 only. The stream parameter is used with only the Local control 12954 descriptor. 12956 Step 1 12957 MGC1 to RGW1: 12958 MEGACO/1 [216.33.33.61]: 27000 12959 Transaction = 1234 { 12960 Context = - { 12961 Modify = TermA { 12962 Media { 12963 LocalControl { 12964 Mode = Receiveonly} 12965 }, 12966 Events = 1111 {al/of} 12967 } 12968 } 12969 } 12971 MG after receiving the command from MGC1 accepts it and responds with 12972 the transaction reply. 12974 Step 2 12976 MG1 to MGC2: 12977 MEGACO/1 [209.110.59.34]: 25000 12978 Reply = 1234 { 12979 Context = - {Modify = TermA} 12980 } 12982 In this example User A goes off hook. This event is detected by the 12983 RGW1 and constructs and sends the Notify message towards the MGC1. The 12984 MG uses the same request id (1111) sent by the MGC1 in its initial 12985 command. The timestamp of the detected event is also passed as 12986 parameter to the observed event. 12988 Step 3 12989 MG1 to MGC1: 12990 MEGACO/1 [209.110.59.34]: 25000 12991 Transaction = 2000 { 12992 Context = - { 12993 Notify = TermA {ObservedEvents =1111 { 12994 20010202T10000000:al/of}} 12995 } 12997 MGC1 generates the Notify response and responds with more messages 12998 towards the MG that generated the Notify command. 13000 Step 4 13001 MGC1 to MG1: 13002 MEGACO/1 [216.33.33.61]: 27000 13003 Reply = 2000 { 13004 Context = - {Notify = TermA} 13006 } 13008 The MGC1 in the present example issues a MODIFY command. The Modify 13009 command contains a signal descriptor for the application of dial tone 13010 to the user. The digit map descriptor here is used to configure a digit 13011 map on the termination. The digit map name used in the example is 13012 Dmap1 and the dial pattern is 2XXX. The event descriptor lists digit 13013 map completion event of the DTMF detection package and onhook of the 13014 analog line supervision package. The request id specified in the event 13015 descriptor is 1112. 13017 Step 5 13018 MGC1 to MG1: 13019 MEGACO/1 [216.33.33.61]: 27000 13020 Transaction = 1235 { 13021 Context = - { 13022 Modify = TermA { 13023 Signals {cg/dt}, 13024 DigitMap= Dmap1 {(2XXX)} 13025 Events = 1112 { 13026 al/on, dd/ce {DigitMap=Dmap1} 13027 }, 13028 } 13029 } 13030 } 13032 MG after receiving the Modify command after validation responds to 13033 the MGC1 and starts processing the descriptors listed. 13035 Step 6 13036 MG1 to MGC1: 13037 MEGACO/1 [209.110.59.34]: 25000 13038 Reply = 1235 { 13039 Context = - {Modify = TermA} 13040 } 13042 The descriptors are processed in the order that is specified by the 13043 MGC1. In this example the order of descriptor is signal descriptor, 13044 digit map descriptor followed by Events descriptor. The MG first 13045 processes the signal descriptor. The dial tone is applied to the 13046 Termination specified. The Digit map is updated in the Database of the 13047 termination. The Digit map said to be ACTIVE on the termination as the 13048 digit map completion event is listed in the events descriptor with the 13049 digit map name. A digit map is activated whenever a new event 13050 descriptor is applied to the termination or embedded event descriptor 13051 is activated, and that event descriptor contains a digit map 13052 completion event which itself contains a digit map parameter. UserA 13053 after receiving the dial tone starts dialing digits. In this example 13054 we will not dwell into the different possible cases of digit dialing 13055 by the user. It's assumed that the user dials digits that match the 13056 pattern specified in the digit map. Lets assume that the user has 13057 dialed 2992. MG detects the digits dialed and reports the same as 13058 parameter to the digit map completion event. A notify command is 13059 generated from MG1 to MGC1. The MG again used the same request 13060 identifier as specified by the MGC1. 13062 Step 7 13063 MG1 to MGC1: 13064 MEGACO/1 [209.110.59.34]: 25000 13065 Transaction = 2001 { 13066 Context = - { 13067 Notify = TermA {ObservedEvents =1112 { 13068 20010202T10010000:dd/ce {ds="2992", Meth=FM}}} 13069 } 13070 } 13072 MGC1 after receiving the Notify command responds back with the Notify 13073 response. 13075 Step 8 13076 MGC1 to MG1: 13077 MEGACO/1 [216.33.33.61]: 27000 13078 Reply = 2001 { 13079 Context = - {Notify = TermA} 13080 } 13082 MGC after receiving the Notify command starts analyzing the dialed 13083 digits. In this example it is assumed that the called subscriber is 13084 connected to the RGW2, which is controlled by MGC2. The MGC1 communicates 13085 to MGC2 that there is a call initiation for UserB. 13087 The MGC1 generates a transaction with two commands clubbed into the same 13088 Action. The first command is to create a new context and add the 13089 physical termination TermA into it. The second command is generated 13090 to create an ephemeral termination and add the created termination 13091 in the same context that was created because of the earlier command. 13092 Here we assumed a single set of SDP information indicating that 13093 Reserve group is not used. The Reserve Value feature is also not used. 13094 The MGC1 thus initiates service-level call establishment by sending the 13095 following control message to the RGW1. 13097 Step 9 13098 MGC to MG1: 13099 MEGACO/1 [216.33.33.61]: 27000 13100 Transaction = 1236 { 13101 Context = $ { 13102 Add = TermA { 13103 Signals {cg/rt} 13104 } 13105 Add = $ { 13106 Media { 13107 { 13108 LocalControl { 13109 Mode = Receiveonly, 13110 }, 13111 Local { 13112 v=0 13113 o=- 2873397497 0 ATM - - 13114 s=- 13115 c=ATM - - 13116 t=0 0 13117 m=audio $ - - 13118 } 13119 } 13120 } 13121 } 13122 } 13124 In this example the connection field specifies only the connection type 13125 (ATM). The other fields are unspecified as they are not needed. 13126 The RGW1 in its response indicates its NSAP address. In this example the 13127 RGW1 creates a context with contextID 1. The physical termination TermA 13128 is added to context 1. The mode of the physical termination was earlier 13129 set to Receiveonly and in this message the ephemeral termination is 13130 requested to create with Receiveonly mode. The ephemeral termination 13131 created in this example is EphA. The RGW1 in its Local SDP information 13132 specifies the "eecid" that needs to be used by the other RGW for 13133 establishing an ATM SVC between RGW1 and RGW2. 13135 Step 10 13136 RGW1 to MGC1: 13137 MEGACO/1 [209.110.59.34]: 25000 13138 Reply = 1236 { 13139 Context = 1 { 13140 Add = TermA, 13141 Add=EphA{ 13142 Media { 13143 Local { 13144 v=0 13145 o=- 2873397496 0 ATM 13146 NSAP 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 13147 s=- 13148 c=ATM NSAP 13149 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 13150 t=0 0 13151 m=audio - AAL2/ITU 8 13152 a=eecid:b3d58e32 13153 } 13154 } 13155 } 13156 } 13158 } 13159 } 13161 MGC2 after receving the SDP information from MGC1 generates an Add 13162 command towards the RGW2. The ContextID specified in the action is $. 13163 The first command adds the physical termination TermB to the newly 13164 created context. The Signal descriptor for this termination lists the 13165 ring signal of the analog line supervision package. This alerting signal 13166 is applied to the termination of the TermB. The Event descriptor specifies 13167 offhook event of the analog line supervision package. The second Add is 13168 meant to create an ephemeral termination. MGC2 has the local information 13169 for the ephemeral termination EphA in the RGW1. This information is passed 13170 as remote information to the RGW2. The new ephemeral termination that 13171 will be created will take these parameters as the remote SDP 13172 information. 13174 Step 11 13175 MGC2 to RGW2: 13176 MEGACO/1 [216.33.33.62]:27000 13177 Transaction = 1237 { 13178 Context = $ { 13179 Add = TermB { Media { 13180 LocalControl {Mode = Receiveonly} }, 13181 Signals {al/ri} 13182 Events =1234{al/of {events = 1235 {al/on}}}, 13183 }, 13184 Add = $ {Media { 13185 LocalControl { 13186 Mode = sendrecv, 13187 }, 13188 Local { 13189 v=0 13190 o=- 2873397497 0 ATM - - 13191 s=- 13192 c=ATM - - 13193 t=0 0 13194 m=audio $ - - 13195 a= bearerType:SVC on 13196 }, 13197 Remote { 13198 v=0 13199 o=- 2873397496 0 ATM 13200 NSAP 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 13201 s=- 13202 c=ATM NSAP 13203 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 13204 t=0 0 m=audio - AAL2/ITU 8 13205 a=eecid:b3d58e32 13206 } 13207 } 13208 } 13210 } 13211 } 13212 } 13214 RGW2 after receiving the new transaction from MGC2 starts processing 13215 it. It creates a new context with contextID 2. It adds the physical 13216 termination TermB to that context and start processing the descriptor 13217 specified in the command. The signal descriptor lists "ring" signal 13218 to be applied on the termination. The event descriptor lists the 13219 off hook event. The RGW2 creates an ephemeral termination with 13220 TerminationId EphB. The local information is under-specified from 13221 the MGC2. The RGW2 allocates the necessary resources for processing the 13222 media descriptor for the ephemeral termination. The RGW2 creates an 13223 SVC connection using the "eecid" specified in the remote descrptor. The 13224 RGW2 as indicated by the MGC that an SVC is to be used as the 13225 flag is on in the Local SDP information. 13226 The RGW2 responds to MGC2 with the following transaction reply. 13228 Step 12 13229 RGW2 to MGC2: 13230 MEGACO/1 [207.176.47.90]: 26000 13231 Reply = 1237 { 13232 Context = 2 { 13233 Add = TermB, 13234 Add = EphB{ 13235 Media { 13236 Local { 13237 v=0 13238 o=- 2873397714 0 ATM 13239 NSAP 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13240 s=- 13241 c=ATM NSAP 13242 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13243 t=0 0 13244 m=audio - AAL2/ITU 8 13245 } 13246 } 13247 } 13248 } 13249 } 13251 The MGC2 waits for the UserB to go offhook. Once the UserB goes offhook, 13252 RGW2 reports the notification of the offhook event to the MGC2. 13254 Step 13 13255 RGW2 to MGC2: 13256 MEGACO/1 [207.176.47.90]: 26000 13257 Transaction = 3000 { 13258 Context = 2 { 13259 Notify = TermB {ObservedEvents =1234 { 13260 20000202T10020000:al/of}} 13262 } 13263 } 13264 The MGC2 responds to the RGW2 with the Notify response. 13266 Step 14 13267 MGC2 to RGW2: 13268 MEGACO/1 [216.33.33.60]: 27000 13269 Reply = 3000 { 13270 Context = 2 {Notify = TermB} 13271 } 13272 The MGC2 generates a transaction towards RGW2 with two commands in one 13273 action. It changes the mode of both the terminations to sendrecv. The 13274 Signal descriptor of the Modify command for the first termination, 13275 stops the ring signal already applied on the termination and the event 13276 descriptor lists the onhook event. 13278 Step 15: 13279 MGC to MG2: 13280 MEGACO/1 [216.33.33.60]: 27000 13281 Transaction = 1238 { 13282 Context = 2 { 13283 Modify = TermB { 13284 Signals { } ; to turn off ringing 13285 Events = 1235 {al/on}, 13286 Media { 13287 LocalControl { 13288 Mode = SendRecv, 13289 } 13290 } 13291 } 13292 Modify = EphB{ 13293 Media { 13294 LocalControl { 13295 Mode = SendRecv, 13296 } 13297 } 13298 } 13299 } 13301 The MG2 responds to the request from MGC. 13303 Step 16 13304 RGW2 to MGC2: 13305 MEGACO/1 [207.176.47.90]: 26000 13306 Reply = 1238 { 13307 Context = 2 {Modify = TermB , Modify = EphB} 13308 } 13310 The MGC2 generates message to the MGC1 to indicate using the "eecid" 13311 sent earlier the SVC is created by the RGW2. The MGC1 generates a 13312 Modify message towards the RGW1 to stop the ringback tone and to report 13313 the remote SDP information for the ephemeral termination EphA. The mode 13314 of the two terminations TermA and EphA is set to send receive. 13316 Step 17 13317 MGC1 to RGW1: 13318 MEGACO/1 [216.33.33.61]: 27000 13319 Transaction = 1239 { 13320 Context = 1 { 13321 Modify = TermA { 13322 Media { 13323 LocalControl { 13324 Mode = sendrecv} 13325 } 13326 } 13327 Signals { } 13328 }, 13329 Modify = EphA { 13330 Media { 13331 LocalControl { 13332 Mode = sendrecv} 13333 } 13334 } 13335 } 13336 } 13337 } 13338 The empty signal descriptor in the Modify command for termination 13339 TermA, specifies to stop the ringback tone at the calling end. 13340 The mode is changed to send receive. RGW1 responds to the MGC1 with 13341 the response for the Modify commands. 13343 Step 18 13344 MG1 to MGC: 13345 MEGACO/1 [209.110.59.34]: 25000 13346 Reply = 1239 { 13347 Context = 1 {Modify = TermA, Modify = EphA} 13348 } 13349 The two users can exchange the media. The call can be termination 13350 either by the calling user or the called user. In this example it is 13351 assumed that the calling party has gone on-hook The UserA after the 13352 conversation goes onhook indicating the tearing down of the call. The 13353 same is reported in the Notify command from RGW1 to MGC1. 13355 Step 19 13356 RGW1 to MGC1: 13357 MEGACO/1 [209.110.59.34]:25000 13358 Transaction = 2002 { 13359 Context = 1 { 13360 Notify = TermA {ObservedEvents =1112 { 13361 20010202T10030000:al/on} 13362 } 13363 } 13365 The MGC1 responds to the MG1s Notify message. 13367 Step 20 13368 MGC1 to RGW1: 13369 MEGACO/1 [216.33.33.61]:27000 13370 Reply = 2002 { 13371 Context = 1 { 13372 Notify = TermA 13373 } 13374 } 13376 The MGC2 after receiving the information from MGC1, generates a Modify 13377 command towards the RGW2 for applying busy tone to the called 13378 subscriber. The mode of both terminations is set to receive only. 13380 Step 21 13381 MGC2 to RGW2: 13382 MEGACO/1 [216.33.33.60]: 27000 13383 Transaction = 1240 { 13384 Context = 2 { 13385 Modify = TermB { 13386 Signals {cg/bt} 13387 Media { 13388 LocalControl { 13389 Mode = recvonly} 13390 } 13391 }, 13392 Modify = EphB { 13393 Media { 13394 LocalControl { 13395 Mode = recvonly} 13396 } 13397 } 13398 } 13399 } 13400 } 13402 The RGW2 responds to this modify request. 13404 Step 22 13405 RGW2 to MGC2: 13406 MEGACO/1 [207.176.47.90]: 26000 13407 Reply = 1240 { 13408 Context = 2 { 13409 Modify= TermB, Modify = EphB} 13410 } 13412 The MGC1 generates transactions with two subtracts commands one for 13413 physical and other for ephemeral terminations. 13415 Step 23: 13417 MGC1 to RGW1 13418 MEGACO/1 [216.33.33.61]: 27000 13419 Transaction = 1241 { 13420 Context = 1 { 13421 Subtract = TermA {Audit{ }}, 13422 Subtract = EphA {Audit{Statistics}} 13423 } 13424 } 13425 The RGW1 subtracts the two terminations from the context. The context 13426 itself is deleted with the subtract of the last termination from it. 13427 The RGW1 responds to this transaction from MGC1 with statistics on 13428 ephemeral termination. 13430 Step 24 13431 RGW1 to MGC1: 13432 MEGACO/1 [209.110.59.34]:25000 13433 Reply = 1241 { 13434 Context = 1 { 13435 Subtract = TermA 13436 Subtract = EphA { 13437 Statistics { 13438 rtp/ps=1234, ; packets sent 13439 nt/os=56789, ; octets sent 13440 rtp/pr=987, ; packets received 13441 nt/or=65432, ; octets received 13442 rtp/pl=10, ; % packets lost 13443 rtp/jit=30, 13444 rtp/delay=30 ; average latency 13445 } 13446 } 13447 } 13448 } 13450 The User B after going onhook, the RGW2 generates Notify command 13451 towards the MGC2. 13453 Step 25 13454 RGW2 to MGC2: 13455 MEGACO/1 [207.176.47.90]: 26000 13456 Transaction = 3001 { 13457 Context = 2 { 13458 Notify = TermB {ObservedEvents =1235 { 13459 20000202T10070000:al/on}} 13460 } 13461 } 13462 The MGC2 responds to the RGW2 with the Notify response. 13464 Step 26 13465 MGC2 to RGW2: 13466 MEGACO/1 [216.33.33.60]: 27000 13467 Reply = 3001 { 13468 Context = 2 {Notify = TermB} 13469 } 13471 The MGC2 generates subtract command towards RGW2 for removing TermB 13472 from valid context. 13474 Step 26 13475 MGC2 to RGW2: 13476 MEGACO/1 [216.33.33.61]: 27000 13477 Transaction = 1242 { 13478 Context = 2 { 13479 Subtract = TermB {Audit{ }}, 13480 Subtract = EphB {Audit{Statistics}} 13481 } 13482 } 13483 The RGW2 responds to the subtract commands generated by MGC2. 13485 Step 27 13486 RGW2 to MGC2: 13487 MEGACO/1 [207.176.47.89]:26000 13488 Reply = 1242 { 13489 Context = 2 { 13490 Subtract = TermB 13491 Subtract = EphB { 13492 Statistics { 13493 rtp/ps=987, ; packets sent 13494 nt/os=65432, ; octets sent 13495 rtp/pr=1234, ; packets received 13496 nt/or=56789, ; octets received 13497 rtp/pl=10, ; % packets lost 13498 rtp/jit=30, 13499 rtp/delay=30 ; average latency 13500 } 13501 } 13502 } 13503 } 13505 The two users UserA and UserB are ready for initiating/receiving further 13506 calls. 13508 Acknowledgements: 13509 The authors wish to thank several colleagues at Kenetec and in the 13510 industry who have contributed towards the development of these call 13511 flow document and who have reviewed and sent valuable technical 13512 comments. Special thanks to Mathi Packiam for providing timely 13513 comments. Basic call flows have been provided by the authors of the 13514 MGCP call flow document. Technical ideas/comments have been provided 13515 by Thillaivilagam Anand, Sarika Gupta, Mehul Shah, Peter Michielsen, 13516 Terry L Anderson and Sasitharan R. 13518 AUTHOR'S ADDRESS 13520 Madhubabu Brahmanapally 13521 Kenetec Inc 13522 550 Spring Street 13523 Naugatuck, CT 06770 13524 Tel 203/723-4242 Extn-378 13525 Fax 203/723-4187 13526 Email: madhubabu@kenetec.com 13528 Prerepa Viswanadham 13529 Kenetec Inc 13530 550 Spring Street 13531 Naugatuck, CT 06770 13532 Tel 203/723-4242 Extn-373 13533 Fax 203/723-4187 13534 Email: dham.prerepa@kenetec.com 13536 Krishna Gundamaraju 13537 Kenetec Inc 13538 550 Spring Street 13539 Naugatuck, CT 06770 13540 Tel 203/723-4242 Extn-407 13541 Fax 203/723-4187 13542 Email: krishna.gundamaraju@kenetec.com