idnits 2.17.1 draft-ietf-megaco-callflows-04.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** It looks like you're using RFC 3978 boilerplate. You should update this to the boilerplate described in the IETF Trust License Policy document (see https://trustee.ietf.org/license-info), which is required now. -- Found old boilerplate from RFC 3667, Section 5.1 on line 16. -- Found old boilerplate from RFC 3978, Section 5.5 on line 13988. ** The document seems to lack an RFC 3978 Section 5.1 IPR Disclosure Acknowledgement -- however, there's a paragraph with a matching beginning. Boilerplate error? ** This document has an original RFC 3978 Section 5.4 Copyright Line, instead of the newer IETF Trust Copyright according to RFC 4748. ** This document has an original RFC 3978 Section 5.5 Disclaimer, instead of the newer disclaimer which includes the IETF Trust according to RFC 4748. ** The document seems to lack an RFC 3979 Section 5, para. 1 IPR Disclosure Acknowledgement. ** The document seems to lack an RFC 3979 Section 5, para. 2 IPR Disclosure Acknowledgement. ** The document seems to lack an RFC 3979 Section 5, para. 3 IPR Disclosure Invitation. ** The document uses RFC 3667 boilerplate or RFC 3978-like boilerplate instead of verbatim RFC 3978 boilerplate. After 6 May 2005, submission of drafts without verbatim RFC 3978 boilerplate is not accepted. The following non-3978 patterns matched text found in the document. That text should be removed or replaced: By submitting this Internet-Draft, I certify that any applicable patent or other IPR claims of which I am aware have been disclosed, or will be disclosed, and any of which I become aware will be disclosed, in accordance with RFC 3668. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == It seems as if not all pages are separated by form feeds - found 0 form feeds but 295 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 131 instances of too long lines in the document, the longest one being 52 characters in excess of 72. ** There are 17 instances of lines with control characters in the document. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year == Line 48 has weird spacing: '...ry call servi...' == Line 2778 has weird spacing: '...towards the o...' == Line 3193 has weird spacing: '...rmation it ha...' == Line 4079 has weird spacing: '...2/clear signa...' == Line 4543 has weird spacing: '...forward signa...' == (1 more instance...) == 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.) -- Couldn't find a document date in the document -- date freshness check skipped. Checking references for intended status: Informational ---------------------------------------------------------------------------- No issues found here. Summary: 13 errors (**), 0 flaws (~~), 9 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 Media Gateway Control (Megaco) Madhubabu Brahmanapally 2 Internet Engineering Task Force Veraz Networks 3 INTERNET-DRAFT Prerepa Viswanadham 4 Document: draft-ietf-megaco-callflows-04.txt Marconi 5 Category: Informational Krishna Gundamaraju 6 Expires: April 25, 2005 ADC Telecommunications 7 November 12 2004 9 Megaco/H.248 Call flow examples 11 Status of this Memo 13 By submitting this Internet-Draft, I certify that any applicable 14 patent or other IPR claims of which I am aware have been disclosed, 15 and any of which I become aware will be disclosed, in accordance with 16 RFC 3668. 18 Internet-Drafts are working documents of the Internet Engineering 19 Task Force (IETF), its areas, and its working groups. Note that 20 other groups may also distribute working documents as 21 Internet-Drafts. 23 Internet-Drafts are draft documents valid for a maximum of six months 24 and may be updated, replaced, or obsoleted by other documents at any 25 time. It is inappropriate to use Internet-Drafts as reference 26 material or to cite them other than as "work in progress." 28 The list of current Internet-Drafts can be accessed at 29 http://www.ietf.org/ietf/1id-abstracts.txt. 31 The list of Internet-Draft Shadow Directories can be accessed at 32 http://www.ietf.org/shadow.html. 34 This Internet-Draft will expire on April 25, 2005 36 Abstract 38 The Megaco/H.248 call flow examples draft illustrates the usage 39 of Megaco - Version 1 protocol [Ref:3] defined between the Media Gateway 40 Controller and Media Gateway. In light of the vast features presently 41 incorporated and continuously evolving features of the protocol, it 42 serves the purpose of representing typical use case scenarios. There 43 are a lot of possible scenarios for usage of MEGACO protocol. It is not 44 the intent of the draft to represent the inter-working functionality 45 among various protocols, however, an attempt is made to depict 46 its usage in such a case for the purpose of completeness in the 47 larger perspective. An attempt has been made to illustrate the 48 supplementary call services using MEGACO. The call flows can 49 be categorized in to two sub sections, 50 - MEGACO only call scenario 51 - MEGACO and other protocols 53 The draft begins with showing MEGACO only call scenarios, where 54 the called and calling party lie in MEGACO domain. Various 55 permutations are possible even in this setup, viz 57 RGW to RGW 58 RGW to TGW 59 TGW to TGW 60 RGW/TGW to IVR 62 In the other case, typical cases of MEGACO interaction with other 63 protocols have been depicted. Here it is assumed that the MG, 64 which participates in the interaction, is RGW. This can be extended 65 to any type of Media GW. The scenarios include 67 MEGACO user with SIP 68 MEGACO user with H.323 69 MEGACO user with SS7 70 MEGACO user with ISDN 71 MEGACO user with R1 72 MEGACO user with R2 74 The packages used in each of the calls flows are mentioned before each 75 of the call flows. The packages that are addressed in this draft along 76 with the packages defined in the base protocol also include packages 77 like R2, R1, etc to illustrate the protocol usage. In case of Trunking 78 gateways even though its not shown explicitly it is assumed that the 79 messages from the CCS (Common Channel Signaling) switches are received 80 by MGC through the Signaling Gateway. The emphasis of the draft is on 81 the Megaco commands hence the messages between Signaling Gateway and 82 MGC are not shown explicitly. Wherever applicable it should be assumed 83 that the CCS switches/exchanges are communicating the messages to 84 MGC through the Signaling Gateway. 86 One of the sections illustrates the usage of SDP for ATM. For 87 simplicity residential gateway with ATM connectivity is assumed. 88 However the same holds true for trunking gateways also. Two methods 89 of call establishment with SDP for ATM are discussed, namely the 90 "Backward Bearer Connection Set-up Model" and "Forward Bearer 91 Connection Set-up Model". 93 This draft should be treated as only a means to illustrate the usage 94 of Megaco but not as a guide for implementing Media Gateway or Media 95 Gateway Controller. These calls flows are only informative. All the 96 messages are encoded in the ABNF syntax for simplicity. The same calls 97 flows are valid with binary messages also. Care has been taken to see 99 Madhubabu, et al. Informational - Expires April 2005 100 that the messages are according to the protocol grammar, in case of 101 discrepancies the protocol draft should be considered for correctness. 102 The Call flow diagrams abstract the protocol messages exchanged 103 between the MG and the MGC. These call flow diagrams are not according 104 to any time scale. The IP addresses and port numbers used in the examples 105 are fictitious. The statistic parameter values are also fictituous. 107 1.1. Conventions used in this document ..............................4 108 1.2 References:......................................................4 109 2. Internet Telephony Call Flows.....................................4 110 2.1 Call between two residential gateways............................5 111 Case (a).calling party call termination.........................7 112 Case (b).called party call termination.........................19 113 Case (c).called party busy.....................................24 114 2.2 Call between Residential Gateway and Trunking Gateway...........26 115 2.3 Call between Trunking gateway and Residential Gateway...........37 116 2.4 Call between two Trunking gateways..............................46 117 2.5 Call between Residential gateway and SS7 trunk in TGW...........54 118 2.6 Call between SS7 trunk in TGW and residential gateway...........64 119 2.7 Call between SS7 trunk in TGW and R2 trunk in TGW...............74 120 2.8 Call between R2 trunk in TGW and SS7 trunk in TGW...............84 121 2.9 Call between R1 trunk in TGW and SS7 trunk in TGW...............94 122 2.10 Call between SS7 trunk in TGW and R1 trunk in TGW.............103 123 2.11 Call between ISDN trunk in TGW and SS7 trunk in TGW...........113 124 2.12 Continuity test from TGW......................................120 125 Case (a).....................................................120 126 Case (b).....................................................122 127 2.13 Call from residential gateway to H.323 Terminal...............123 128 2.14 Call from residential gateway to SIP user.....................132 129 3 Service Change Command Usage.....................................140 130 3.1 ROOT Termination...............................................140 131 3.1.1 MGC accepting registration...................................140 132 3.1.2 MGC rejecting registration...................................142 133 3.1.3 Handoff......................................................144 134 3.1.4 Disconnection................................................146 135 3.2 Service Change for Termination.................................149 136 3.2.1 MG generated Service Change..................................149 137 3.2.2 MGC generated Service Change.................................157 138 4.0 Audit Command Usage............................................160 139 4.1 Audit Value....................................................160 140 4.1.1 Audit value command on ROOT Termination......................160 141 4.1.2 Audit value on non-ROOT terminations.........................162 142 4.2 Audit Capability...............................................164 143 4.2.1 Audit Capability on ROOT termination.........................164 144 4.2.2 Audit Capability on non-Root Terminations....................165 145 5. IVR using MEGACO................................................166 146 5.1 Connecting Residential gateway to IVR..........................166 147 5.2 Disconnecting Residential User from IVR........................173 148 5.3 Connecting Trunking Gateway to IVR.............................176 149 5.4 Disconnecting Trunking gateway from IVR........................180 150 6. Wildcard ContextID usage........................................182 151 7. Wildcard TerminationId Usage....................................183 152 8. Supplementary services support..................................184 153 8.1 Call Transfer..................................................184 154 8.2 Call waiting...................................................207 155 9. Conferencing....................................................232 156 10.0 SDP for ATM...................................................266 157 10.1.1 Forward Bearer Connection Set-up Method.....................267 158 10.1.2 Backward Bearer Connection Set-up Method....................280 160 1.1. Conventions used in this document 162 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 163 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in 164 this document are to be interpreted as described in RFC-2119 [Ref:2]. 166 1.2 References: 168 1) Bradner, S., "The Internet Standards Process -- Revision 3", 169 BCP 9, RFC 2026, November1996. 170 2) Bradner, S., "Key words for use in RFCs to Indicate Requirement 171 Levels", BCP 14, RFC 2119, April 1997. 172 3) C. Groves, M. Pantaleo et al. "Megaco Protocol Version 1.0", 173 RFC 3525, June 2003. 174 4) Christian Huitema, et. Al. "Media Gateway Control Protocol (MGCP) 175 Call Flows". < 176 5) Implementers' Guide for ITU Recommendation H.248. Mar 2002. 177 6) Megaco mail archive 178 ftp://ftp.ietf.org/ietf-mail-archive/megaco/ 179 7) ITU-T Recommendation H.248.25 (07/2003), Gateway Control Protocol: 180 Basic CAS Packages 181 8) ITU-T Recommendation H.248.28 (01/2004), Gateway Control Protocol: 182 International CAS Packages 183 9) ITU-T Recommendation H.248.23 (07/2002), Gateway Control Protocol: 184 Enhanced Alerting Packages 185 10) Rajesh Kumar et. al, Conventions for the use of the Session 186 Description Protocol (SDP)for ATM Bearer Connections. 187 RFC 3108, May 2001. 188 11) ITU-T Recommendation H.248.24 (05/2003), Gateway Control Protocol: 189 Multi-Frequency Tone Generation and Detection Packages 191 2. Internet Telephony Call Flows 193 This section illustrates sample Internet telephone calls. Calls between 194 Trunking gateway, Residential gateway, H.323 Endpoint, etc are 195 illustrated. In all these call scenarios emphasis is given on the 196 Megaco protocol messages rather than the remaining entities. 198 2.1 Call between two Residential Gateways 200 The call establishment between two residential users is considered in 201 this example. User A and User B are connected to two residential 202 gateways RGW1 and RGW2. For simplicity we consider the case where 203 the two MG's are controlled by the same MGC. The call scenario 204 assumes the implementation of analog line supervision package, 205 RTP package, generic package, DTMF detection package, Call progress 206 generator package, and the Network Package. Along with the successful 207 call between the two users (case a), we also consider the case 208 where the called party is busy (case c), and the call termination 209 by both the users (case a for UserA terminated call flow and case b 210 for UserB terminated call flow) is also discussed. In this example 211 the registration of the MG (RGW) with the MGC is assumed to have 212 happened as explained in section 3.1.1 Registration. 213 _____________________________________________________________________ 214 | | | | 215 USERA | RGW1 | MGC | RGW2 | USERB 216 _____________|___________|___________|______________|_________________ 217 | | | | | 218 | | | | | 219 | | |---------->| | 220 | | |Modify to | | 221 | | |Check Offhook | 222 | |<----------| | | 223 | |Modify to | | | 224 | |check offhook | | 225 | |---------->|<----------| | 226 | |Modify Resp| Modify Resp 227 | 228 |----------->| | | | 229 |UserA offhook | | | 230 | |---------->| | | 231 | |Notify offhook | | 232 | |<----------| | | 233 | |Notify Resp| | | 234 | |<----------| | | 235 | |Modify SD:cg/dt | | 236 | |ED:al/on,dd/ce{Dmap1} | | 237 | |DM:Dmap1 = 2XXX | | 238 |<-----------| | | | 239 |Dial Tone |---------->| | | 240 | |Modify Resp| | | 241 | | | | | 242 |----------->| | | | 243 |User Dials Digits | | | 244 | |---------->| | | 245 | |Notify digits | | 246 | |<----------| | | 247 | |Notify Response | | 248 | |<----------| | | 249 | | Add TermA | | | 250 | | Add $, Local SDP Info -underspecified | 251 | | | | | 252 | | | | | 253 | |---------->| | | 254 | |Add Resp TermA | | 255 | |Add Resp EphA Local SDP (Specified) | 256 | | |---------->| | 257 | | |Add TermB SD:al/ri ED:al/of | 258 | | |Add $ Local SDP(Underspecified)| 259 | | | Remote SDP (Specified) | 260 | | | | | 261 | | | |------------------>| 262 | | | | UserB Phone Ringing 263 | | |<----------| | 264 | | |Add Resp TermB | 265 | | |Add Resp EphB Local SDP Specified 266 | |<----------| | | 267 | |Modify TermA SD:cg/rt | | 268 |<-----------| | | | 269 | Ring back tone | | | 270 | |---------->| | | 271 | |Modify Resp TermA | | 272 | | | |<------------------| 273 | | | |UserB goes Offhook | 274 | | |<----------| | 275 | | |Notify Offhook | 276 | | |---------->| | 277 | | | Notify Resp | 278 | | |---------->| | 279 | | |Modify TermB SendRecv | 280 | | |Modify EphB SendRecv | 281 | | |<----------| | 282 | | |Modify Resp| | 283 | |<----------| | | 284 | |Modify TermA SendRecv | | 285 | |Modify EphA Remote(Specified) SendRecv | 286 | |---------->| | | 287 | |Modify Resp| | | 288 |/------------------------------------------------------\| 289 | RTP MEDIA | 290 |\------------------------------------------------------/| 291 |----------->| | | | 292 |UserA goes OnHook | | | 293 | |---------->| | | 294 | |Notify OnHook | | 295 | |<----------| | | 296 | |Notify Resp| | | 297 | | |---------->| | 298 | | |Modify TermA SD:BusyTone | 299 | | | |------------------>| 300 | | | | Busy tone to UserB| 301 | | |<----------| | 302 | | |Modify Resp| | 303 | |<----------| | | 304 | |Subtract TermA | | 305 | |Subtract EphA | | 306 | |---------->| | | 307 | |Subtract Resp TermA | | 308 | |Subtract Resp EphA Statistics | 309 | | | |<------------------| 310 | | | | UserB goes Onhook | 311 | | |<----------| | 312 | | |Notify Onhook | 313 | | |---------->| | 314 | | |Notify Resp| | 315 | | |---------->| | 316 | | |Subtract TermB | 317 | | |Subtract EphB | 318 | | |<----------| | 319 | | |Subtract Resp TermB | 320 | | |Subtract Resp EphB Statistics | 321 |____________|___________|___________|___________________| 323 Case (a) Call between two Residential Gateways - calling party call termination 325 In all the telephone scenarios explained in this draft, once the call 326 is terminated by either the Calling party or the called party, the 327 other user hears a busy tone. A dial tone can be applied for the user 328 to initiate another call. But for simplicity busy tone is applied so 329 that the user goes onhook before initiating another call. It is assumed 330 in the call scenarios that the registration of the MG with the MGC is 331 done already. In Step 1 the MGC generates the Modify message towards 332 both the Residential gateways to check for off hook on the 333 terminations. (A wildcard command may also be used in this scenario but 334 simplicity we consider only command to specific terminations). Modify 335 message generated only for Residential gateway 1 is shown, similar 336 message is sent to the other Residential gateway also. We are not 337 considering the embedded signal and event descriptors here. Another 338 call scenario will illustrate the use of embedded event and signal 339 descriptors. The MGC in NULL context generates the command to the 340 specific termination TermA. The off hook event of the analog supervision 341 package is used here. The request identifier specified here in the 342 example is 1111. The mode of the termination is set to receive only. 343 The stream parameter is used with only the Local control descriptor. 345 Step 1 346 MGC to RGW1: 347 MEGACO/1 [216.33.33.61]: 27000 349 Transaction = 1234 { 350 Context = - { 351 Modify = TermA { 352 Media { 353 LocalControl { 354 Mode = Receiveonly} 355 }, 356 Events = 1111 {al/of} 357 } 358 } 359 } 361 MG after receiving the command from MGC accepts it and responds with the 362 transaction reply. 364 Step 2 366 RGW1 to MGC: 367 MEGACO/1 [209.110.59.34]: 25000 368 Reply = 1234 { 369 Context = - {Modify = TermA} 370 } 372 In this example User A goes off hook. This event is detected by the 373 RGW1 which constructs and sends the Notify message towards the MGC. The 374 MG uses the same request id (1111) sent by the MGC in its initial 375 command. The timestamp of the detected event is also passed as 376 parameter to the observed event. 378 Step 3 379 RGW1 to MGC: 380 MEGACO/1 [209.110.59.34]: 25000 381 Transaction = 2000 { 382 Context = - { 383 Notify = TermA {ObservedEvents =1111 { 384 20010202T10000000:al/of}} 385 } 387 MGC generates the Notify response and responds with more messages 388 towards the MG that generated the Notify command. 390 Step 4 391 MGC to RGW1: 392 MEGACO/1 [216.33.33.61]: 27000 393 Reply = 2000 { 394 Context = - {Notify = TermA} 395 } 397 The MGC in the present example issues a MODIFY command. The Modify 398 command contains a signal descriptor for the application of dial tone 399 to the user. The digit map descriptor here is used to configure a digit 400 map on the termination. The digit map name used in the example is 401 Dmap1 and the dial pattern is 2XXX. The event descriptor lists digit 402 map completion event of the DTMF detection package and onhook of the 403 analog line supervision package. The request id specified in the event 404 descriptor is 1112. 406 Step 5 407 MGC to RGW1: 408 MEGACO/1 [216.33.33.61]: 27000 409 Transaction = 1235 { 410 Context = - { 411 Modify = TermA { 412 Signals {cg/dt}, 413 DigitMap= Dmap1 {(2XXX)} 414 Events = 1112 { 415 al/on, dd/ce {DigitMap=Dmap1} 416 }, 417 } 418 } 419 } 421 MG after receiving the Modify command after validation responds to 422 the MGC and starts processing the descriptors listed. 424 Step 6 425 RGW1 to MGC: 426 MEGACO/1 [209.110.59.34]: 25000 427 Reply = 1235 { 428 Context = - {Modify = TermA} 429 } 431 The descriptors are processed in the order that is specified by the 432 MGC. In this example the order of descriptors is signal descriptor, 433 digit map descriptor followed by Events descriptor. The MG first 434 processes the signal descriptor. The dial tone is applied to the 435 Termination specified. The Digit map is updated in the Database of the 436 termination. The Digit map is said to be ACTIVE on the termination as the 437 digit map completion event is listed in the events descriptor with the 438 digit map name. A digit map is activated whenever a new event 439 descriptor is applied to the termination or embedded event descriptor 440 is activated, and that event descriptor contains a digit map 441 completion event which itself contains a digit map parameter. UserA 442 after receiving the dial tone starts dialing digits. In this example 443 we will not dwell into the different possible cases of digit dialing 444 by the user. It's assumed that the user dials digits that match the 445 pattern specified in the digit map. Lets assume that the user has 446 dialed 2992. MG detects the digits dialed and reports the same as a 447 parameter to the digit map completion event. A notify command is 448 generated from RGW1 to MGC. The MG again used the same request 449 identifier as specified by the MGC. 451 Step 7 452 RGW1 to MGC: 453 MEGACO/1 [209.110.59.34]: 25000 454 Transaction = 2001 { 455 Context = - { 456 Notify = TermA {ObservedEvents =1112 { 457 20010202T10010000:dd/ce {ds="2992", Meth=FM}}} 458 } 459 } 461 MGC after receiving the Notify command responds back with the Notify 462 response. 464 Step 8 465 MGC to RGW1: 466 MEGACO/1 [216.33.33.61]: 27000 467 Reply = 2001 { 468 Context = - {Notify = TermA} 469 } 471 MGC, after receiving the Notify command, starts analyzing the dialed 472 digits. In this example it is assumed that the called subscriber is 473 connected to the RGW2, which is again controlled by the same MGC. The 474 MGC generates a transaction with two commands clubbed into the same 475 Action. The first command is to create a new context and add the 476 physical termination TermA into it. The second command is generated 477 to create an ephemeral termination and add the created termination 478 in the same context that was created because of the earlier command. 479 Here we assumed a single set of SDP information and the Reserve group 480 and the Reserve Value features are not used. 482 Step 9 483 MGC to RGW1: 484 MEGACO/1 [216.33.33.61]: 27000 485 Transaction = 1236 { 486 Context = $ { 487 Add = TermA { 488 } 489 Add = $ { 490 Media { 491 { 492 LocalControl { 493 Mode = Receiveonly, 494 }, 495 Local { 496 v=0 497 c=IN IP4 $ 498 m=audio $ RTP/AVP 4 499 } 500 } 501 } 502 } 503 } 505 In this example the connection fields IP address, the media field port 506 number are unspecified. The MG in its response indicates the IPAddress 507 and port number used. The contextID is also not specified indicating the 508 creation of a new context. In this example the MG creates a context 509 with contextID 1. The physical termination TermA is added to context 1. 510 The mode of the physical termination was earlier set to Receiveonly 511 and in this message the ephemeral termination is requested to be created 512 in Receiveonly mode. The ephemeral termination created in this 513 example is EphA. MG responds with the allocated IP address 514 209.110.59.33 and port number 30000. 516 Step 10 517 RGW1 to MGC: 518 MEGACO/1 [209.110.59.34]: 25000 519 Reply = 1236 { 520 Context = 1 { 521 Add = TermA, 522 Add=EphA{ 523 Media { 524 Local { 525 v=0 526 o=- 2890844526 2890842807 IN IP4 209.110.59.34 527 s=- 528 t= 00 529 c=IN IP4 209.110.59.33 530 m=audio 30000 RTP/AVP 4 531 a=recvonly 532 } ; RTP profile for G.723 is 4 533 } 534 } 535 } 536 } 537 } 539 MGC generates a similar transaction towards the RGW2. The ContextID 540 specified in the action is $. The first command adds the physical 541 termination TermB to the newly created context. The Signal descriptor 542 for this termination lists the ring signal of the analog line 543 supervision package. This alerting signal is applied to the termination 544 of the TermB. The Event descriptor specifies offhook event of the 545 analog line supervision package. The second Add is meant to create an 546 ephemeral termination. MGC has the local information for the 547 ephemeral termination EphA in the RGW1. This information is passed 548 as remote information to the RGW2. The new ephemeral termination that 549 will be created will take these parameters as the remote SDP 550 information. 552 Step 11 553 MGC to RGW2: 554 MEGACO/1 [216.33.33.61]:27000 555 Transaction = 1237 { 556 Context = $ { 557 Add = TermB { Media { 558 LocalControl {Mode = Receiveonly} }, 559 Signals {al/ri} 560 Events =1234{al/of { Embed {events = 1235 {al/on}}}}, 561 }, 562 Add = $ {Media { 563 LocalControl { 564 Mode = 565 Receiveonly, 566 }, 567 Local { 568 v=0 569 c=IN IP4 $ 570 m=audio $ RTP/AVP 4 572 }, 573 Remote { 574 v=0 575 o=- 2890844526 2890842807 IN IP4 209.110.59.34 576 s=- 577 t= 00 578 c=IN IP4 209.110.59.33 579 m=audio 30000 RTP/AVP 4 580 } ; RTP profile for G.723 is 4 581 } 582 } 583 } 584 } 585 } 587 RGW2 after receiving the new transaction from MGC starts processing it. 588 It creates a new context with contextID 2. It adds the physical 589 termination TermB to that context and start processing the descriptor 590 specified in the command. The signal descriptor lists "ring" signal 591 to be applied on the termination. The event descriptor lists the 592 off hook event. The RGW2 creates an ephemeral termination with 593 TerminationId EphB. The local information is under-specified from 594 the MGC. The MG allocates the necessary resources for processing the 595 media descriptor for the ephemeral termination. The MG responds 596 to the MGC by specifying the IP address reserved for the local 597 connection. In this example RGW2 reserves IP address 207.176.47.90 598 and port number 40000. The RGW2 responds to MGC with the following 599 transaction reply. 601 Step 12 602 RGW2 to MGC: 603 MEGACO/1 [207.176.47.89]: 26000 604 Reply = 1237 { 605 Context = 2 { 606 Add = TermB, 607 Add = EphB{ 608 Media { 609 Local { 610 v=0 611 o=- 2890844527 2890842808 IN IP4 207.176.47.89 612 s=- 613 t= 00 614 c=IN IP4 207.176.47.90 615 m=audio 40000 RTP/AVP 4 616 } 617 } ; RTP profile for G723 is 4 618 } 619 } 620 } 622 The Remote Gateway generates ring signal to the called party. The response 623 of Add indicates successful alerting of the called party, the MGC then generates 624 ring back tone to the calling party. Messages are exchanged in the form of 625 Modify for the physical termination. The Originating Residential gateway 626 after initiating the ringback tone generates response to the MGC to indicate 627 successful execution of the command. 629 Once the UserB goes offhook, RGW2 reports the offhook event to the MGC. 631 Step 13 632 RGW2 to MGC: 633 MEGACO/1 [207.176.47.89]: 26000 634 Transaction = 3000 { 635 Context = 2 { 636 Notify = TermB {ObservedEvents =1234 { 637 20000202T10020000:al/of}} 638 } 639 } 640 The MGC responds to the RGW2 with the Notify response. 642 Step 14 643 MGC to RGW2: 644 MEGACO/1 [216.33.33.61]: 27000 645 Reply = 3000 { 646 Context = 2 {Notify = TermB} 647 } 648 The MGC generates a transaction towards RGW2 with two commands in one 649 action. It changes the mode of both the terminations to sendrecv. The 650 Signal descriptor of the Modify command for the first termination, 651 stops the ring signal already applied on the termination and the event 652 descriptor lists the onhook event. 654 Step 15: 655 MGC to RGW2: 656 MEGACO/1 [216.33.33.61]: 27000 657 Transaction = 1238 { 658 Context = 2 { 659 Modify = TermB { 660 Signals { } ; to turn off ringing 661 Events = 1235 {al/on}, 662 Media { 663 LocalControl { 664 Mode = SendRecv, 665 } 666 } 667 } 668 Modify = EphB{ 669 Media { 670 LocalControl { 671 Mode = SendRecv, 672 } 673 } 675 } 676 } 678 The RGW2 responds to the request from MGC. 680 Step 16 681 RGW2 to MGC: 682 MEGACO/1 [207.176.47.89]: 26000 683 Reply = 1238 { 684 Context = 2 {Modify = TermB , Modify = EphB} 685 } 687 The MGC generates message to the RGW1 to stop the ringback tone and to 688 report the remote SDP information for the ephemeral termination EphA. 689 The mode of the two terminations TermA and EphA is set to send receive. 691 Step 17 692 MGC to RGW1: 693 MEGACO/1 [216.33.33.61]: 27000 694 Transaction = 1239 { 695 Context = 1 { 696 Modify = TermA { 697 Media { 698 LocalControl { 699 Mode = sendrecv} 700 } 701 } 702 Signals { } 703 }, 704 Modify = EphA { 705 Media { 706 LocalControl { 707 Mode = sendrecv} 708 Remote { 709 v=0 710 o=- 2890844527 2890842808 IN IP4 207.176.47.89 711 s=- 712 t= 00 713 c=IN IP4 207.176.47.90 714 m=audio 40000 RTP/AVP 4 715 } 716 } ; RTP profile for G723 is 4 717 } 718 } 719 } 720 } 721 The empty signal descriptor in the Modify command for termination 722 TermA, specifies to stop the ringback tone at the calling end. The 723 remote SDP information is updated for the ephemeral termination EphA 724 and its mode is changed to send receive. RGW1 sends the response to the 725 Modify command to the MGC. 727 Step 18 728 RGW1 to MGC: 729 MEGACO/1 [209.110.59.34]: 25000 730 Reply = 1239 { 731 Context = 1 {Modify = TermA, Modify = EphA} 732 } 733 The two users can exchange the voice. The call can be terminated 734 either by the calling user or the called user. In this example it is 735 assumed that the calling party has gone on-hook. After the conversation 736 user A goes onhook initiating the call tear down. The 737 same is reported in the Notify command from RGW1 to MGC. 739 Step 19 740 RGW1 to MGC: 741 MEGACO/1 [209.110.59.34]:25000 742 Transaction = 2002 { 743 Context = 1 { 744 Notify = TermA {ObservedEvents =1112 { 745 20010202T10030000:al/on} 746 } 747 } 749 The MGC responds to the RGW1s Notify message. 751 Step 20 752 MGC to RGW1: 753 MEGACO/1 [216.33.33.61]:27000 754 Reply = 2002 { 755 Context = 1 { 756 Notify = TermA 757 } 758 } 760 The MGC generates a Modify command towards the RGW2 for applying busy 761 tone to the called subscriber. The mode of both terminations is set to 762 receive only. 764 Step 21 765 MGC to RGW2: 766 MEGACO/1 [216.33.33.61]: 27000 767 Transaction = 1240 { 768 Context = 2 { 769 Modify = TermB { 770 Signals {cg/bt} 771 Media { 772 LocalControl { 773 Mode = recvonly} 774 } 775 }, 776 Modify = EphB { 777 Media { 778 LocalControl { 779 Mode = recvonly} 780 } 781 } 782 } 783 } 784 } 786 The RGW2 responds to this modify request. 788 Step 22 789 RGW2 to MGC: 790 MEGACO/1 [207.176.47.89]: 26000 791 Reply = 1240 { 792 Context = 2 { 793 Modify= TermB, Modify = EphB} 794 } 796 The MGC generates transactions with two subtracts commands one for 797 physical and other for ephemeral terminations. The MGC does the same 798 for both the Contexts one at RGW1 and the other at RGW2. 800 Step 23: 801 MGC to RGW1 802 MEGACO/1 [216.33.33.61]: 27000 803 Transaction = 1241 { 804 Context = 1 { 805 Subtract = TermA {Audit{ }}, 806 Subtract = EphA {Audit{Statistics}} 807 } 808 } 809 The MG subtracts the two terminations from the context. The context 810 itself is deleted with the subtract of the last termination from it. 811 The RGW1 responds to this transaction from MGC with statistics on 812 ephemeral termination. 814 Step 24 815 RGW1 to MGC: 816 MEGACO/1 [209.110.59.34]:25000 817 Reply = 1241 { 818 Context = 1 { 819 Subtract = TermA 820 Subtract = EphA { 821 St 822 atistics { 823 rtp/ps=1234, ; packets sent 824 nt/os=56789, ; octets sent 825 rtp/pr=987, ; packets received 826 nt/or=65432, ; octets received 827 rtp/pl=10, ; % packets lost 828 rtp/jit=30, 829 rtp/delay=30 ; average latency 830 } 831 } 832 } 833 } 835 After User B goes onhook the RGW2 generates Notify command 836 towards the MGC. 838 Step 25 839 RGW2 to MGC: 840 MEGACO/1 [207.176.47.89]: 26000 841 Transaction = 3001 { 842 Context = 2 { 843 Notify = TermB {ObservedEvents =1235 { 844 20000202T10070000:al/on}} 845 } 846 } 847 The MGC responds to the RGW2 with the Notify response. 849 Step 26 850 MGC to RGW2: 851 MEGACO/1 [216.33.33.61]: 27000 852 Reply = 3001 { 853 Context = 2 {Notify = TermB} 854 } 856 The MGC generates subtract command towards RGW2 for removing TermB 857 from valid context. 859 Step 27 860 MGC to RGW2: 861 MEGACO/1 [216.33.33.61]: 27000 862 Transaction = 1242 { 863 Context = 2 { 864 Subtract = TermB {Audit{ }}, 865 Subtract = EphB {Audit{Statistics}} 866 } 868 } 869 The RGW2 responds to the subtract commands generated by MGC. 871 Step 28 872 RGW2 to MGC: 873 MEGACO/1 [207.176.47.89]:26000 874 Reply = 1242 { 875 Context = 2 { 876 Subtract = TermB 877 Subtract = EphB { 878 Statistics { 879 rtp/ps=987, ; packets sent 880 nt/os=65432, ; octets sent 881 rtp/pr=1234, ; packets received 882 nt/or=56789, ; octets received 883 rtp/pl=10, ; % packets lost 884 rtp/jit=30, 885 rtp/delay=30 ; average latency 886 } 887 } 888 } 889 } 891 The MGC generates the message shown in step 1 to both the RGW1 and 892 RGW2, to enable the users to participate/initiate in further calls. 894 Case (b) Call between two Residential Gateways - called party call termination 896 _____________________________________________________________________ 897 | | | | 898 USERA | RGW1 | MGC | RGW2 | USERB 899 _____________|___________|___________|______________|_________________ 900 | | | | | 901 | | | | | 902 |/------------------------------------------------------\| 903 | RTP MEDIA | 904 |\------------------------------------------------------/| 905 | | | | | 906 | | | |<------------------| 907 | | | |UserB goes Onhook | 908 | | |<----------| | 909 | | |Notify Onhook | 910 | | |---------->| | 911 | | |Notify Resp| | 912 | | | | | 913 | |<----------| | | 914 | |Modify TermA SD:BusyTone | 915 |<-----------| | | | 916 |Busy tone | | | | 917 | |---------->| | | 918 | |Modify Resp|---------->| | 919 | | |Subtract TermB | 920 | | |Subtract EphB | 921 | | |<----------| | 922 | | |Subtract Resp TermB | 923 | | |Subtract Resp EphB Statistics | 924 |----------->| | | | 925 |UserA goes Onhook | | | 926 | |---------->| | | 927 | |Notify OnHook | | 928 | |<----------| | | 929 | |Notify Resp| | | 930 | |<----------| | | 931 | |Subtract TermA | | 932 | |Subtract EphA | | 933 | |---------->| | | 934 | |Subtract Resp TermA | | 935 | |Subtract Resp EphA Statistics | 936 |____________|___________|___________|___________________| 938 The case (a) illustrated the call flow where the calling party initiates 939 the call termination. In this section we will discuss 940 the call scenario where the called party terminates the call. The 941 assumptions for case (a) holds good for this call flow also. The call 942 flow is same till step 18. The voice path is through and both the 943 users are in conversation. We will consider the call flow when UserB 944 goes on hook. As soon as the UserB goes onhook the RGW2 generates 945 notify message to the MGC. 947 Step 19 948 RGW2 to MGC: 949 MEGACO/1 [207.176.47.89]:26000 950 Transaction = 3001 { 951 Context = 2 { 952 Notify = TermB {ObservedEvents =1235 { 953 20010202T10030000:al/on} 954 } 955 } 956 } 958 The MGC responds to the MG's notify message. 959 Step 20 960 MGC to RGW2: 961 MEGACO/1 [216.33.33.61]:27000 962 Reply = 3001 { 963 Context = 2 { 964 Notify = TermB 965 } 966 } 968 The MGC generates a Modify command towards the RGW1 for applying busy 969 tone to the called subscriber. The mode of both terminations is set 970 to receive only. 972 Step 21 973 MGC to RGW1: 974 MEGACO/1 [216.33.33.61]: 27000 975 Transaction = 1240 { 976 Context = 1 { 977 Modify = TermA { 978 Signals {cg/bt} 979 Media { 980 LocalControl { 981 Mode = recvonly} 982 } 983 }, 984 Modify = EphA { 985 Media { 986 LocalControl { 987 Mode = recvonly} 988 } 989 } 990 } 991 } 992 } 994 The RGW1 responds to this modify request. 996 Step 22 997 RGW1 to MGC: 998 MEGACO/1 [209.110.59.34]: 25000 999 Reply = 1240 { 1000 Context = 1 { 1001 Modify= TermA, Modify = EphA} 1002 } 1004 The MGC generates transactions with two subtracts commands one for 1005 physical and other for ephemeral terminations. This command is 1006 directed towards the RGW2, since UserB has initiated the call tear 1007 down. 1009 Step 23 1010 MGC to RGW2: 1011 MEGACO/1 [216.33.33.61]: 27000 1012 Transaction = 1241 { 1013 Context = 2 { 1014 Subtract = TermB {Audit {}}, 1015 Subtract = EphB {Audit {Statistics}} 1016 } 1017 } 1018 The RGW2 responds to the subtract commands generated by MGC. 1020 Step 24 1021 RGW2 to MGC: 1022 MEGACO/1 [209.110.59.34]:25000 1023 Reply = 1241 { 1024 Context = 2 { 1025 Subtract = TermB 1026 Subtract = EphB { 1027 Statistics { 1028 rtp/ps=987, ; packets sent 1029 nt/os=65432, ; octets sent 1030 rtp/pr=1234, ; packets received 1031 nt/or=56789, ; octets received 1032 rtp/pl=10, ; % packets lost 1033 rtp/jit=30, 1034 rtp/delay=30 ; average latency 1035 } 1036 } 1037 } 1038 } 1040 The User A after hearing the busy tone goes onhook. The same activity 1042 Madhubabu, et al. Informational - Expires April 2005 1043 is recognized as onhook event by the RGW1. The Notify command is 1044 generated towards the MGC. 1046 Step 25 1047 RGW1 to MGC: 1048 MEGACO/1 [209.110.59.34]:25000 1049 Transaction = 2002 { 1050 Context = 1 { 1051 Notify = TermA {ObservedEvents =1112 { 1052 20010202T10030000:al/on} 1053 } 1054 } 1055 The MGC responds to the RGW1s Notify message. 1057 Step 26 1058 MGC to RGW1: 1059 MEGACO/1 [216.33.33.61]: 27000 1060 Reply = 2002 { 1061 Context = 1 { 1062 Notify = TermA 1063 } 1064 } 1066 The MGC after receiving the Notify command with onhook event, 1067 generates subtract commands to remove the termination from context 1068 Identifier 1. 1070 Step 27: 1071 MGC to RGW1 1072 MEGACO/1 [216.33.33.61]: 27000 1073 Transaction = 1242 { 1074 Context = 1 { 1075 Subtract = TermA {Audit{ }}, 1076 Subtract = EphA {Audit{Statistics}} 1077 } 1078 } 1079 The MG subtracts the two terminations from the context. The context 1080 itself is deleted with the subtract of the last termination from it. 1081 The RGW1 responds to this transaction from MGC with statistics on 1082 ephemeral termination. 1084 Step 28 1085 RGW1 to MGC: 1086 MEGACO/1 [209.110.59.34]:25000 1087 Reply = 1242 { 1088 Context = 1 { 1089 Subtract = TermA 1090 Subtract = EphA { 1091 Statistics { 1092 rtp/ps=1234, ; packets sent 1093 nt/os=56789, ; octets sent 1094 rtp/pr=987, ; packets received 1095 nt/or=65432, ; octets received 1096 rtp/pl=10, ; % packets lost 1097 rtp/jit=30, 1098 rtp/delay=30 ; average latency 1099 } 1100 } 1101 } 1102 } 1104 The MGC generates the message shown in step 1 to both the RGW1 1105 and RGW2, to enable the users to participate/initiate in further 1106 calls. 1108 Case (c) Call between two Residential Gateways - called party busy 1109 _____________________________________________________________________ 1110 | | | | 1111 USERA | RGW1 | MGC | RGW2 | USERB 1112 _____________|___________|___________|______________|_________________ 1113 | | | | | 1114 | | | | | 1115 | | |---------->| | 1116 | | |Modify to | | 1117 | | |Check Offhook | 1118 | |<----------| | | 1119 | |Modify to | | | 1120 | |check offhook | | 1121 | |---------->|<----------| | 1122 | |Modify Resp| Modify Resp | 1123 |----------->| | | | 1124 |UserA offhook | | | 1125 | |---------->| | | 1126 | |Notify offhook | | 1127 | | | | | 1128 | |<----------| | | 1129 | |Notify Resp| | | 1130 | |<----------| | | 1131 | |Modify SD:cg/dt | | 1132 | |ED:al/on,dd/ce{Dmap1} | | 1133 | |DM:Dmap1 = 2XXX | | 1134 |<-----------| | | | 1135 |Dial Tone |---------->| | | 1136 | |Modify Resp| | | 1137 | | | | | 1138 |----------->| | | | 1139 |User Dials Digits | | | 1140 | |---------->| | | 1141 | |Notify digits | | 1142 | |<----------| | | 1143 | |Notify Response | | 1144 | |<----------| | | 1145 | |Modify TermA SD:BusyTone | 1146 |<-----------| | | | 1147 |Busy tone | | | | 1148 | |---------->| | | 1149 | |Modify Resp| | | 1150 |----------->| | | | 1151 |UserA goes Onhook | | | 1152 | |---------->| | | 1153 | |Notify OnHook | | 1154 | |<----------| | | 1155 | |Notify Resp| | | 1156 |____________|___________|___________|___________________| 1158 The two call flows explained in case (a) and (b) illustrate a 1159 successful call scenario. In this subsection we will describe an 1160 unsuccesful call scenario where UserA calls UserB and as the UserB is 1161 already in a call, UserA receives busy tone. Steps 1 through 8 1162 are similar to successful flow. 1164 When the MGC receives the digits dialed by UserA, it analyses the 1165 digits and find that the digits 2992 pertain to UserB, which is again 1166 controlled by the same MGC. In this example UserB is already in some 1167 other call. Hence the call initiation from UserA becomes unsuccessful. 1168 MGC in this case issues a message, which instructs the MG, to apply busy 1169 tone on the Termination TermA. 1171 Step 9 1172 MGC to RGW1: 1173 MEGACO/1 [216.33.33.61]: 27000 1174 Transaction = 1236 { 1175 Context = - { 1176 Modify = TermA { 1177 Signals {cg/bt} 1178 } 1179 } 1180 } 1182 MG responds to the Modify message from MGC. It applies busy tone on 1183 the termination TermA. MG also responds to the message generated from 1184 MGC. 1186 Step 10: 1187 RGW1 to MGC: 1188 MEGACO/1 [209.110.59.34]: 25000 1189 Reply = 1236 { 1190 Context = - { 1191 Modify = TermA 1192 } 1193 } 1195 As soon as the UserA goes onhook MG detects the same and reports that 1196 event as parameter in the Notify command it generates towards the MGC. 1198 Step 12: 1199 RGW1 to MGC: 1200 MEGACO/1 [209.110.59.34]: 25000 1201 Transaction = 2002 { 1202 Context = - { 1203 Notify = TermA {ObservedEvents =1112 { 1204 20010202T10010000:al/on} 1205 } 1206 } 1207 The MGC responds to the Notify generated by MG. 1209 Step 11: 1210 MGC to RGW1: 1211 MEGACO/1 [216.33.33.61]: 27000 1212 Reply = 2002 { 1213 Context = - { 1214 Notify = TermA 1215 } 1216 } 1218 The MGC sends a Modify command towards that RGW1 for the Termination 1219 TermA as shown in step 1 that takes the termination TermA to idle 1220 state. In this state the RGW1 is again ready to detect events on the 1221 termination TermA. 1223 2.2 Call between Residential Gateway and Trunking Gateway 1225 In the earlier section we illustrated the call between two users UserA 1226 and UserB connected to residential gateways RGW1 and RGW2. In this 1227 section we illustrate the call flow between a Residential gateway user 1228 and a Trunking gateway. In this flow, the packages that are supported 1229 by the RGW are analog line supervision package, RTP package, generic 1230 package, DTMF detection package, Call progress generator package and the 1231 Network Package. The Trunking gateway supports RTP package, generic 1233 Intern 1234 et-Draft Megaco/H.248 Call flow examples November2004 1236 package, and network package. We are not assuming any specific 1237 signaling protocol between the trunking Gateway and its peer. This makes 1238 callflow simple and independent of the type of signaling towards the 1239 other side of the Trunking gateway. 1241 _________________________________________________ 1242 | | | 1243 USERA | RGW1 | MGC | TGW 1244 _____________|___________|___________|___________ 1245 | | | | 1246 | | | | 1247 | |<----------| | 1248 | |Modify to | | 1249 | |check offhook | 1250 | |---------->| | 1251 | |Modify Resp| | 1252 |----------->| | | 1253 |UserA offhook | | 1254 |<-----------|---------->| | 1255 |Dial Tone |Notify offhook | 1256 | |<----------| | 1257 | |Notify Resp| | 1258 |----------->| | | 1259 |User Dials Digits | | 1260 | |---------->| | 1261 | |Notify digits | 1262 | |<----------| | 1263 | |Notify Response | 1264 | |<----------| | 1265 | | Add TermA | | 1266 | | Add $, Local SDP Info -underspecified 1267 | |---------->| | 1268 | |Add Resp TermA | 1269 | |Add Resp EphA Local SDP (Specified) 1270 | | |---------->| 1271 | | |Add Phy | 1272 | | |Add $ Local(Underspecified) 1273 | | | Remote SDP (Specified) 1274 | | |<----------| 1275 | | |Add Resp Phy 1276 | | |Add Resp EphB Local SDP Specified 1277 | |<----------| | 1278 | | Modify TermA SD: cb/rt| 1279 |<-----------| | | 1280 |user hears RingBack Tone | 1281 | |---------->| | 1282 | |Modify Resp TermA | 1283 | |<----------| | 1284 | |Modify TermA SendRecv | 1285 | |Modify EphA Remote(Specified) SendRecv 1286 | |---------->| | 1287 | |Modify Resp| | 1288 | | |---------->| 1289 | | |Modify Trunk1/line1 mode=sendRecv 1290 | | |Modify EphB mode = sendRecv 1291 | | |<----------| 1292 | | | Modify Resp Trunk1/line1 1293 | | | Modify Resp EphB 1294 |/----------------------------------\| 1295 | RTP MEDIA | 1296 |\----------------------------------/| 1297 |----------->| | | 1298 |UserA goes OnHook | | 1299 | |---------->| | 1300 | |Notify OnHook | 1301 | |<----------| | 1302 | |Notify Resp| | 1303 | |<----------| | 1304 | |Subtract TermA | 1305 | |Subtract EphA | 1306 | |---------->| | 1307 | |Subtract Resp TermA | 1308 | |Subtract Resp EphA Statistics 1309 | | |---------->| 1310 | | |Subtract Phy 1311 | | |Subtract EphB 1312 | | |<----------| 1313 | | |Subtract Resp Phy 1314 | | |Subtract Resp EphB Statis 1315 |____________|___________|___________| 1317 The MGC issues modify command to the residential gateway to 1318 check for offhook event on Termination TermA. In this message the event 1319 offhook has an embedded signal descriptor and embedded event descriptor. 1320 The embedded signal descriptor is sent for application of dial tone 1321 immediately after the detection of the offhook event and the event 1322 descriptor then will be updated with the onhook and the digit map 1323 completion event. The Digit map is also defined in the digit map 1324 descriptor. 1326 Step 1 1327 MGC to RGW: 1328 MEGACO/1 [216.33.33.61]:27000 1329 Transaction = 1234 { 1330 Context = - { 1331 Modify = TermA { 1332 Media { 1333 LocalControl { 1334 Mode = Receiveonly} 1335 }, 1336 DigitMap= Dmap1 {(2XXX)} 1337 Events = 1111 {al/of Embed {signals {cg/dt}, Events=1112 {al/on}, 1338 {dd/ce {Dmap1}}} 1339 } 1340 } 1341 } 1343 The MG after receiving the MGC's message responds to it. 1345 Step 2 1346 RGW to MGC: 1347 MEGACO/1 [209.110.59.34]: 25000 1348 Reply = 1234 { 1349 Context = - {Modify = TermA} 1350 } 1352 When the user A goes offhook RGW detects the offhook event and as it 1353 is listed in the event descriptor report the event detection using 1354 Notify command. 1356 Step 3 1357 RGW to MGC: 1358 MEGACO/1 [209.110.59.34]:25000 1359 Transaction = 2000 { 1360 Context = - { 1361 Notify = TermA {ObservedEvents =1111 { 1362 20010202T10000000:al/of}} 1363 } 1364 } 1365 the MGC responds with the Notify response. 1367 Step 4 1368 MGC to RGW: 1370 MEGACO/1 [216.33.33.61]: 27000 1371 Reply = 2000 { 1372 Context = - {Notify = TermA} 1373 } 1375 The user gets Dial tone as part of Embedded descriptor processing. The 1376 digit map is active on the termination TermA. When the user dials the 1377 digits they are reported to MGC through Notify command. 1379 Step 5 1380 RGW to MGC: 1381 MEGACO/1 [209.110.59.34]: 25000 1382 Transaction = 2001 { 1383 Context = - { 1384 Notify = TermA {ObservedEvents =1112 { 1385 20010202T10010000:dd/ce {ds="2992", Meth=FM}}} 1386 } 1387 } 1389 MGC after receiving the Notify command responds back with the Notify 1390 response. 1392 Step 6 1393 MGC to RGW: 1394 MEGACO/1 [216.33.33.61]: 27000 1395 Reply = 2001 { 1396 Context = - {Notify = TermA} 1397 } 1399 The MGC generates the Add command for adding the physical termination 1400 TermA and to create an ephemeral termination EphA. The local SDP 1401 information for the ephem 1402 eral termination EphA is under specified to 1403 enable the RGW to allocate the necessary values by itself. The mode 1404 of the two terminations is set to receive only. 1406 Step 7 1407 MGC to RGW: 1408 MEGACO/1 [216.33.33.61]: 27000 1409 Transaction = 1235 { 1410 Context = $ { 1411 Add = TermA { 1412 Media { 1413 { 1414 LocalControl { 1415 Mode = ReceiveOnly, 1416 }, 1417 } 1418 Add = $ { 1419 Media { 1420 { 1421 LocalControl { 1422 Mode = ReceiveOnly, 1423 }, 1424 Local { 1425 v=0 1426 c=IN IP4 $ 1427 m=audio $ RTP/AVP 4 1428 } 1429 } 1430 } 1431 } 1432 } 1434 MG after creating the context adds the physical termination TermA. In 1435 this case MG creates a context with ContextId 1. The ephemeral 1436 termination EphA is created and added to the context 1. The MG 1437 reserves resources for the local SDP information. In this case the 1438 IP address allocated is 209.110.59.33 and the port number used is 1439 30000. The MG responds to the Add command with this message. 1441 Step 8 1442 RGW to MGC: 1443 MEGACO/1 [209.110.59.34]: 25000 1444 Reply = 1235 { 1445 Context = 1 { 1446 Add = TermA, 1447 Add=EphA { 1448 Media { 1449 Local { 1450 v=0 1451 o=- 2890844528 2890842809 IN IP4 209.110.59.34 1452 s=- 1453 t= 00 1454 c=IN IP4 209.110.59.33 1455 m=audio 30000 RTP/AVP 4 1456 a=recvonly 1457 }; RTP profile for G.723 is 4 1458 } 1459 } 1460 } 1461 } 1462 } 1464 In this example as mentioned earlier we don't assume any specific 1465 signaling between the Trunking Gateway and its peer. This eliminates 1466 the complexity of reporting the address information and alerting the 1467 end user. The MGC then "Adds" a physical termination. The wildcard $ 1468 is used here to enable the Trunking gateway to choose one of the 1469 circuits from the specified trunk. The ephemeral termination creation 1470 request has under specified local SDP information and fully specified 1471 remote SDP information. 1473 Step 9 1474 MGC to TGW 1475 MEGACO/1 [216.33.33.61]: 27000 1476 Transaction = 1236 { 1477 Context = $ { 1478 Add = Trunk1/$ {Media { 1479 LocalControl {Mode = SendRecv}}, 1480 }, 1481 Add = $ {Media { 1482 LocalControl { 1483 Mode = Receiveonly, 1484 }, 1485 Local { 1486 v=0 1487 c=IN IP4 $ 1488 m=audio $ RTP/AVP 4 1490 }, 1491 Remote { 1492 v=0 1493 o=- 2890844528 2890842809 IN IP4 209.110.59.34 1494 s=- 1495 t= 00 1496 c=IN IP4 209.110.59.33 1497 m=audio 30000 RTP/AVP 4 1498 } ; RTP profile for G.723 is 4 1499 } 1500 } 1501 } 1502 } 1503 } 1505 The Trunking gateway then processes the command and performs the necessary 1506 signaling actions towards the peer of the Trunking gateway. The trunk 1507 identifier allocated is returned in the Add response for physical 1508 termination. In the response for the ephemeral termination, the TGW 1509 returns the local information of the ephemeral termination created. 1510 In this example the TGW creates a context with ContextID 2. 1512 Step 10 1513 TGW to MGC: 1514 MEGACO/1 [207.176.47.89]: 26000 1515 Reply = 1236 { 1516 Context = 2 { 1517 Add = Trunk1/line1, 1518 Add = EphB{ 1519 Media { 1520 Local { 1521 v=0 1522 o=- 2890844529 2890842810 IN IP4 207.176.47.89 1523 s=- 1524 t= 00 1525 c=IN IP4 207.176.47.90 1526 m=audio 40000 RTP/AVP 4 1527 } 1528 } ; RTP profile for G723 is 4 1529 } 1530 } 1531 } 1533 The MGC after recieving the indication that alerting has been done towards the 1534 Trunking gateway side, will generate Modify command for the calling party for 1535 generation of ring back tone. The Residential gateway after generating the ring back 1536 tone responsds with the Modify Response to the MGC. 1537 As mentioned earlier how the MGC receives the indication about the 1538 status of the end user is out of scope of this call flow. But once the 1539 MGC receives the users status it forwards the remote SDP information 1540 to the RGW and changes the mode of the terminations at RGW and 1541 TGW to SendRecv. 1543 Step 11 1544 MGC to RGW: 1545 MEGACO/1 [216.33.33.61]: 27000 1546 Transaction = 1237 { 1547 Context = 1 { 1548 Modify = TermA { 1549 Media { 1550 LocalControl { 1551 Mode = sendrecv} 1552 } 1553 } 1554 Signals { } 1555 }, 1556 Modify = EphA { 1557 Media { 1558 LocalControl { 1559 Mode = sendrecv} 1560 Remote { 1562 v=0 1563 o=- 2890844529 2890842810 IN IP4 207.176.47.89 1564 s=- 1565 t= 00 1566 c=IN IP4 207.176.47.90 1567 m=audio 40000 RTP/AVP 4 1568 } 1569 } ; RTP profile for G723 is 4 1570 } 1571 } 1572 } 1573 } 1575 The RGW after receiving the Modify command from MGC responds back with 1576 the response. 1578 Step 12 1579 RGW to MGC: 1580 MEGACO/1 [209.110.59.34]: 25000 1581 Reply = 1237 { 1582 Context = 1 {Modify = TermA, Modify = EphA} 1583 } 1585 The MGC also generates commands to the TGW to change the mode of the 1586 Ephemeral termination to send receive. This completes the virtual 1587 voice path between the two ephemeral terminations. 1589 Step 13 1590 MGC to TGW: 1591 MEGACO/1 [216.33.33.61]: 27000 1592 Transaction = 1238 { 1593 Context = 2 { 1594 Modify = Trunk1/line1 { 1595 Media { 1596 LocalControl { 1597 Mode = sendrecv} 1598 } 1599 } 1600 }, 1601 Modify = EphB { 1602 Media { 1603 LocalControl { 1604 Mode = sendrecv} 1605 } 1606 } 1607 } 1608 } 1610 The TGW after processing the mode change information in Modify command 1611 responds to it with the following message. 1613 Step 14 1614 TGW to MGC: 1615 MEGACO/1 [207.176.47.89]: 26000 1616 Reply = 1238 { 1617 Context = 2 {Modify = Trunk1/line1, Modify = EphB} 1618 } 1619 Now RTP media flow takes place. In the example the UserA goes onhook 1620 to terminate the call. The RGW after detecting the event reports the 1621 same to MGC in the Notify command. 1623 Step 15: 1624 RGW to MGC: 1625 MEGACO/1 [209.110.59.34]: 25000 1626 Transaction = 2002 { 1627 Context = 1 { 1628 Notify = TermA {ObservedEvents =1112 { 1629 20010202T10030000:al/on} 1630 } 1631 } 1632 } 1633 The MGC responds to the MG1s Notify message. 1635 Step 16 1636 MGC to MG1: 1637 MEGACO/1 [216.33.33.61]: 27000 1638 Reply = 2002 { 1639 Context = 1 { 1640 Notify = TermA 1641 } 1642 } 1643 The MGC now generates subtract commands both to the RGW and the TGW. 1644 The mechanism of generating call progress tone towards the called user 1645 is not shown for simplicity. The two Subtract commands are clubbed in 1646 a single action. 1648 Step 17 1649 MGC to RGW 1650 MEGACO/1 [216.33.33.61]: 27000 1651 Transaction = 1239 { 1652 Context = 1 { 1653 Subtract = TermA {Audit{ }}, 1654 Subtract = EphA {Audit{Statistics}} 1655 } 1656 } 1657 The MG subtracts the two terminations from the context. The context 1658 itself is deleted with the subtraction of the last termination from it. 1659 The MG1 respond 1660 s to this transaction from MGC with statistics on 1661 ephemeral termination. 1663 Step 18 1664 RGW to MGC: 1665 MEGACO/1 [209.110.59.34]:25000 1666 Reply = 1239 { 1667 Context = 1 { 1668 Subtract = TermA 1669 Subtract = EphA { 1670 Statistics { 1671 rtp/ps=1234, ; packets sent 1672 nt/os=56789, ; octets sent 1673 rtp/pr=987, ; packets received 1674 nt/or=65432, ; octets received 1675 rtp/pl=10, ; % packets lost 1676 rtp/jit=30, 1677 rtp/delay=30 ; average latency 1678 } 1679 } 1680 } 1681 } 1683 The MGC generates similar command towards the TGW 1685 Step 19 1686 MGC to TGW: 1687 MEGACO/1 [216.33.33.61]: 27000 1688 Transaction = 1240 { 1689 Context = 2 { 1690 Subtract = Trunk1/line1{Audit{ }}, 1691 Subtract = EphB {Audit{Statistics}} 1692 } 1693 } 1694 The TGW responds to the subtract commands generated by MGC. 1696 Step 20 1697 TGW to MGC: 1698 MEGACO/1 [209.110.59.34]:25000 1699 Reply = 1240 { 1700 Context = 2 { 1701 Subtract = Trunk1/line1 1702 Subtract = EphB { 1703 Statistics { 1704 rtp/ps=987, ; packets sent 1705 nt/os=65432, ; octets sent 1706 rtp/pr=1234, ; packets received 1707 nt/or=56789, ; octets received 1708 rtp/pl=10, ; % packets lost 1709 rtp/jit=30, 1710 rtp/delay=30 ; average latency 1711 } 1712 } 1713 } 1714 } 1716 2.3 Call between Trunking gateway and Residential Gateway 1718 The previous section illustrated the call between a residential user and 1719 a Trunking gateway. There the call was initiated by the Residential gateway. 1720 In this call scenario we will illustrate the case where the call 1721 terminates on the Residential gateway when originated by the 1722 Trunking gateway. Even in this call flow we will assume that signaling 1723 between the Trunking gateway and its peer is taken care by an external entity, 1724 to avoid CAS/CCS specific details. 1726 ___________________________________________________________ 1727 | | | 1728 TGW | MGC | RGW | USERB 1729 _________ ___|___________|______________|_________________ 1730 | | | | 1731 | | | | 1732 |<----------| | | 1733 | Add Phy SD:cg/rt | | 1734 | Add $, Local SDP Info -underspecified | 1735 |---------->| | | 1736 |Add Resp Phy | | 1737 |Add Resp EphA Local SDP (Specified) | 1738 | |---------->| | 1739 | |Add TermB SD:Ring ED:offhook | 1740 | |Add $ Local(Underspecified) | 1741 | | Remote SDP (Specified) | 1742 | | | | 1743 | | |------------------>| 1744 | | | UserB Phone Ringing 1745 | |<----------| | 1746 | |Add Resp TermB | 1747 | |Add Resp EphB Local SDP Specified 1748 | | |<------------------| 1749 | | |UserB goes Offhook | 1750 | |<----------| | 1751 | |Notify Offhook | 1752 | |---------->| | 1753 | | Notify Resp | 1754 | |---------->| | 1755 | |Modify Phy SendRecv | 1756 | |Modify EphB SendRecv | 1757 | |<----------| | 1758 | |Modify Resp| | 1759 |<----------| | | 1760 |Modify Phy SendRecv | | 1761 |Modify EphA Remote SDP (Specified) SendRecv 1762 |---------->| | | 1763 |Modify Resp| | | 1764 |/-----------------------------------------\| 1765 | RTP MEDIA | 1766 |\-----------------------------------------/| 1767 | |---------->| | 1768 | |Modify TermB SD:BusyTone | 1769 | | |------------------>| 1770 | | | Busy tone to UserB| 1771 | |<----------| | 1772 | |Modify Resp| | 1773 |<----------| | | 1774 |Subtract Phy | | 1775 |Subtract EphA | | 1776 |---------->| | | 1777 |Subtract Resp Phy | | 1778 |Subtract Resp EphA Statistics | 1779 | | |<------------------| 1780 | | | UserB goes Onhook | 1781 | |<----------| | 1782 | |Notify Onhook | 1783 | |---------->| | 1784 | |Notify Resp| | 1785 | |---------->| | 1786 | |Subtract TermB | 1787 | |Subtract EphB | 1788 | |<----------| | 1789 | |Subtract Resp TermB | 1790 | |Subtract Resp EphB Statistics | 1791 |___________|___________|___________________| 1793 We assume here that the MGC knows about the call initiation by some 1794 non-MEGACO means (SIGTRAN for example). The MGC then instructs 1795 the TGW to seize a trunk using the Add command with $ (choose) 1796 wildcard. The MGC also requests for creation of an ephemeral 1797 termination using another Add command in the same action request. The 1798 Context Id specified by MGC is $ indicating that the TGW needs to 1799 create a context and "Add" these terminations in the new context. 1801 Step 1 1802 MGC to TGW: 1803 MEGACO/1 [216.33.33.61]: 27000 1804 Transaction = 1234 { 1805 Context = $ { 1806 Add = Trunk1/$ {Media { 1807 LocalControl {Mode = recvonly}}, 1808 }, 1809 Add = $ {Media { 1810 LocalControl { 1811 Mode = Receiveonly, 1812 }, 1813 Local { 1814 v=0 1815 c=IN IP4 $ 1816 m=audio $ RTP/AVP 4 1818 } 1819 } 1820 } 1821 } 1822 } 1823 } 1825 The TGW after receiving the Add request from MGC creates a context. In 1826 this example the ContextID allocated for the new context is 2. The 1827 physical termination chosen by the TGW is Trunk1/line1. The mode of 1828 the termination is set to Receiveonly. The TGW creates an ephemeral 1829 termination with the SDP information specified by MGC. The respons 1830 e 1831 contains all the specified values for the SDP information. To avoid 1832 complexity in this call flow no reserve group and reserve value 1833 properties are used. It should be assumed that they are all "OFF". In 1834 this example the TGW reserved 207.176.47.90 as the IP address and 1835 40000 as the port number for the RTP media stream. 1837 Step 2: 1839 TGW to MGC: 1840 MEGACO/1 [207.176.47.89]: 26000 1841 Reply = 1234 { 1842 Context = 2 { 1843 Add = Trunk1/line1, 1844 Add = EphA{ 1845 Media { 1846 Local { 1847 v=0 1848 o=- 2890844521 2890842812 IN IP4 207.176.47.89 1849 s=- 1850 t= 00 1851 c=IN IP4 207.176.47.90 1852 m=audio 40000 RTP/AVP 4 1853 } 1854 } ; RTP profile for G723 is 4 1855 } 1856 } 1857 } 1859 The MGC, after receiving the response from TGW, instructs the RGW to 1860 alert User B in the ADD command for the physical termination TermB. 1861 The MGC uses $ contextID indicating the creation of Context at 1862 MG. The Ephemeral termination creation is also requested. The Remote 1863 SDP information is also passed as one of the parameters in the media 1864 descriptor. The signal descriptor in the Add command for physical 1865 termination instructs RGW to apply the ring signal on the termination 1866 TermB. 1868 Step 3 1869 MGC to RGW: 1870 MEGACO/1 [216.33.33.61]: 27000 1871 Transaction = 1235 { 1872 Context = $ { 1873 Add = TermB { 1874 Signals { al/ri } 1875 Events= 1111 { al/of { Embed { Events = 1112 { al/on }}}} 1876 Media { 1877 { 1878 LocalControl { 1879 Mode = ReceiveOnly, 1880 }, 1881 } 1882 Add = $ { 1883 Media { 1884 { 1885 LocalControl { 1886 Mode = ReceiveOnly, 1887 }, 1888 Local { 1889 v=0 1890 c=IN IP4 $ 1891 m=audio $ RTP/AVP 4 1892 } 1893 remote { 1894 v=0 1895 o=- 2890844521 2890842812 IN IP4 207.176.47.89 1896 s=- 1897 t= 00 1898 c=IN IP4 207.176.47.90 1899 m=audio 40000 RTP/AVP 4 1900 } 1901 } ; RTP profile for G723 is 4 1902 } 1903 } 1904 } 1906 The RGW, after receiving the transaction request from MGC, first creates 1907 a context. In this example the contextID allocated is 1. The RGW 1908 "adds" the termination TermB to context 1 and as part of the signal 1909 descriptor processing applies the "ring" signal on the termination. 1910 The Events descriptor lists the offhook event of analog line 1911 supervision package. The requestId specified in this example is 1912 1111. The RGW also creates the ephemeral termination EphB whose 1913 remote SDP information is specified by MGC and the local SDP 1914 information is allocated and reserved by RGW. In this example the 1915 RGW allocates an IP address of 209.110.59.33 and port number 30000. 1916 The mode of the ephemeral termination is set to receive only. 1918 Step 4 1920 RGW to MGC: 1921 MEGACO/1 [209.110.59.34]: 25000 1922 Reply = 1235 { 1923 Context = 1 { 1924 Add = TermB, 1925 Add=EphB { 1926 Media { 1927 Local { 1928 v=0 1929 o=- 2890844522 2890842813 IN IP4 209.110.59.34 1930 s=- 1931 t= 00 1932 c=IN IP4 209.110.59.33 1933 m=audio 30000 RTP/AVP 4 1934 a=recvonly 1935 } ; RTP profile for G.723 is 4 1936 } 1937 } 1938 } 1939 } 1940 } 1942 The UserB goes Offhook after hearing the "ring" signal. The offhook 1943 event is reported to the MGC as observed event descriptor in Notify 1944 command. 1946 Step 5 1947 RGW to MGC: 1948 MEGACO/1 [209.110.59.34]: 25000 1949 Transaction = 2000 { 1950 Context = 1 { 1951 Notify = TermB {ObservedEvents =1111 { 1952 20010202T10001000:al/of}} 1953 } 1954 } 1955 The MGC responds with the Notify response. 1957 Step 6 1958 MGC to RGW: 1959 MEGACO/1 [216.33.33.61]: 27000 1960 Reply = 2000 { 1961 Context = 1 {Notify = TermB} 1962 } 1964 The MGC now generates commands to both RGW and TGW. These commands are 1965 generated to modify the mode of the physical and ephemeral 1966 terminations on both RGW and TGW. 1968 Step 7: 1969 MGC to RGW 1970 MEGACO/1 [216.33.33.61]: 27000 1971 Transaction = 1236 { 1972 Context = 1 { 1973 Modify = TermB { 1974 Media { 1975 LocalControl { 1976 Mode = sendrecv} 1977 } 1978 } 1979 Modify = EphB { 1980 Media { 1981 LocalControl { 1982 Mode = sendrecv} 1983 } 1984 } 1985 } 1986 } 1988 The RGW responds with the Transaction response for the commands sent 1989 for both physical and ephemeral termination. 1990 Step 8 1991 RGW to MGC: 1992 MEGACO/1 [209.110.59.34]: 25000 1994 Reply= 1236 { 1995 Context = 1 { 1996 Modify = TermB {} 1997 Modify = EphB { 1998 } 1999 } 2000 } 2002 The MGC also generates similar command towards the Trunking gateway that 2003 instructs it to change the mode of the terminations to send and receive. 2004 The MGC in the Modify for the ephemeral termination also specifies the 2005 remote SDP information. 2007 Step 9 2008 MGC to TGW: 2009 MEGACO/1 [216.33.33.61]: 27000 2010 Transaction = 1237 { 2011 Context = 2 { 2012 Modify = Trunk1/line1 { 2013 Media { 2014 LocalControl { 2015 Mode = SendRecv} 2016 } 2017 } 2018 Modify = EphA { 2019 Media { 2020 LocalControl { 2021 Mode = SendRecv} 2022 Remote { 2023 v=0 2024 o=- 2890844522 2890842813 IN IP4 207.176.47.89 2025 s=- 2026 t= 00 2027 c=IN IP4 207.176.47.90 2028 m=audio 40000 RTP/AVP 4 2029 } 2030 } ; RTP profile for G723 is 4 2031 } 2032 } 2033 } 2034 } 2036 The Trunking gateway responds to the MGC message and changes the mode 2037 for both the terminations to Send and receive. 2039 Step 10 2040 TGW to MGC: 2041 MEGACO/1 [207.176.47.89]: 26000 2043 Reply = 1237 { 2044 Context = 2 { 2045 Modify = Trunk1/line1, 2046 Modify = EphA { 2047 } 2048 } 2049 } 2050 Once the mode of both the terminations changed to send receive the two 2051 users can start the conversation. The media stream is established. 2052 It is assumed here that the user connected to the peer of the trunking 2053 Gateway, who is also the call originator, initiates the call termination. 2054 The MGC is updated with this information by some non-MEGACO means (using 2055 SIGTRAN for example). The MGC generates a busy signal towards UserB 2056 connected to the RGW. 2058 Step 11 2059 MGC to RGW: 2060 MEGACO/1 [216.33.33.61]:27000 2061 Transaction = 1238 { 2062 Context = 1 { 2063 Modify = TermB { 2064 Signals { cg/bt } 2065 } 2066 } 2067 } 2068 } 2069 The RGW as part of signal descriptor processing plays the busy tone 2070 towards the UserB termination TermB. The response is generated after 2071 processing the command from MGC. 2073 Step 12 2074 RGW to MGC: 2075 MEGACO/1 [209.110.59.34]: 25000 2076 Reply = 1238 { 2077 Context = 1 { 2078 Modify = TermB { 2079 } 2080 } 2081 } 2083 The MGC terminates the call by generating Subtract command for both 2084 the terminations in TGW and RGW. 2086 Step 13 2087 MGC to TGW: 2088 MEGACO/1 [216.33.33.61]: 27000 2089 Transaction = 1239 { 2090 Context = 2 { 2091 Subtract = Trunk1/line1{Audit{ }}, 2092 Subtract = EphA {Audit{Statistics}} 2093 } 2094 } 2095 The TGW r 2096 esponds with the Statistics of the ephemeral termination in the 2097 response to the Subtract command. The context is deleted as a side effect of 2098 deletion of both the terminations in the context. 2100 Step 14: 2101 TGW to MGC: 2102 MEGACO/1 [207.176.47.89]:26000 2103 Reply = 1239 { 2104 Context = 2 { 2105 Subtract = Trunk1/line1 2106 Subtract = EphA { 2107 Statistics { 2108 rtp/ps=987, ; packets sent 2109 nt/os=65432, ; octets sent 2110 rtp/pr=1234, ; packets received 2111 nt/or=56789, ; octets received 2112 rtp/pl=10, ; % packets lost 2113 rtp/jit=30, 2114 rtp/delay=30 ; average latency 2115 } 2116 } 2117 } 2118 } 2119 The user of the RGW goes onhook. The RGW generates a Notify command towards 2120 the MGC. 2121 Step 15: 2122 RGW to MGC: 2123 MEGACO/1 [209.110.59.34]: 25000 2124 Transaction = 2001 { 2125 Context = 1 { 2126 Notify = TermB {ObservedEvents =1112 { 2127 20010202T10030000:al/on} 2128 } 2129 } 2130 } 2131 The MGC responds to the RGWs Notify message. 2133 Step 16 2134 MGC to MG1: 2135 MEGACO/1 [216.33.33.61]: 27000 2136 Reply = 2001 { 2137 Context = 1 { 2138 Notify = TermA 2139 } 2141 } 2143 The MGC generates subtract command towards the RGW to delete the 2144 physical and ephemeral terminations. 2146 Step 17 2147 MGC to RGW: 2148 MEGACO/1 [216.33.33.61]: 27000 2149 Transaction = 1240 { 2150 Context = 1 { 2151 Subtract = TermB {Audit{ }}, 2152 Subtract = EphB {Audit{Statistics}} 2153 } 2154 } 2155 The RGW responds with the statistics for the ephemeral termination in 2156 the Subtract response. 2158 Step 18 2159 RGW to MGC: 2160 MEGACO/1 [209.110.59.34]:25000 2161 Reply = 1240 { 2162 Context = 1 { 2163 Subtract = TermB 2164 Subtract = EphB { 2165 Statistics { 2166 rtp/ps=1234, ; packets sent 2167 nt/os=56789, ; octets sent 2168 rtp/pr=987, ; packets received 2169 nt/or=65432, ; octets received 2170 rtp/pl=10, ; % packets lost 2171 rtp/jit=30, 2172 rtp/delay=30 ; average latency 2173 } 2174 } 2175 } 2176 } 2177 The Call is terminated when the response is received from RGW. The MGC 2178 generates the initial Modify command to check for offhook on the 2179 termination TermB. This takes the termination TermB to idle state and 2180 the UserB is ready to generate and receive further calls. 2182 2.4 Call between two Trunking gateways 2183 The previous three sections illustrates calls between two 2184 residential gateways, and also between residential gateway and Trunking 2185 gateway. This callflow illustrates call between two trunking gateways 2186 connected to the same MGC. 2188 In this scenario also to avoid unnecessary complexity we still assume 2189 that some non-MEGACO means of signaling is performed by the MGC. 2190 The CAS/CCS signaling details towards the other 2191 side of the each Trunking gateway is avoided for simplicity. In this 2192 call scenario MGC generates messages for enabling media flow. No signaling 2193 is done on either the physical or ephemeral termination. 2195 ________________________________________ 2196 | | 2197 TGW1 | MGC | TGW2 2198 _________ ___|___________|______________ 2199 | | | 2200 | | | 2201 |<----------| | 2202 | Add Phy SD:ringbacktone 2203 | Add $, Local SDP Info -underspecified 2204 |---------->| | 2205 |Add Resp Phy | 2206 |Add Resp Local SDP (Specified) 2207 | |---------->| 2208 | |Add Phy SD:Ring ED:offhook 2209 | |Add $ Local(Underspecified) 2210 | | Remote SDP (Specified) 2211 | | | 2212 | |<----------| 2213 | |Add Resp Phy 2214 | |Add Resp EphB Local Specified 2215 |<----------| | 2216 |Modify Phy SendRecv | 2217 |Modify EphA Remote(Specified) SendRecv 2218 |---------->| | 2219 |Modify Resp| | 2220 | |---------->| 2221 | |Modify Phy SendRecv 2222 | |Modify EphB SendRecv 2223 | |<----------| 2224 | |Modify Resp| 2225 |/---------------------\| 2226 | RTP MEDIA | 2227 |\---------------------/| 2228 |<----------| | 2229 |Subtract Phy | 2230 |Subtract EphA | 2231 |---------->| | 2232 |Subtract Resp Phy | 2233 |Subtract Resp EphA Statistics 2234 | |---------->| 2235 | |Subtract Phy 2236 | |Subtract EphB 2237 | |<----------| 2238 | |Subtract Resp Phy 2239 | |Subtract Resp EphB Statistics 2240 |___________|___________| 2242 When the MGC receives the call establishment from one side of the 2243 Trunking gateway it generates two ADD commands in a single action. The 2244 action request includes creation of Context, choosing of physical 2245 termination and adding the same to the context created and creating 2246 of ephemeral termination and adding this to the newly created 2247 context. The local SDP parameters are under specified. The TGW1 in 2248 its response need to specify these under specified parameters. 2250 Step 1 2251 MGC to TGW1: 2252 MEGACO/1 [216.33.33.61]: 27000 2253 Transaction = 1234 { 2254 Context = $ { 2255 Add = Trunk1/$ {Media { 2256 LocalControl {Mode = recvonly}}, 2257 }, 2258 Add = $ {Media { 2259 LocalControl { 2260 Mode = Receiveonly, 2261 }, 2262 Local { 2263 v=0 2264 c=IN IP4 $ 2265 m=audio $ RTP/AVP 4 2267 } 2268 } 2269 } 2270 } 2271 } 2272 } 2273 The TGW after receiving the Add request from MGC creates a context. 2274 In this example the ContextID allocated for the new context is 1. The 2275 physical termination chosen by the TGW is Trunk1/line1. The mode of 2276 the termination is set to Receiveonly. The TGW creates an ephemeral 2277 termination with the SDP information specified by MGC. The response 2278 contains all the specified values for the SDP information. To avoid 2279 complexity in this call flow no reserve group and reserve value 2280 properties are used. It should be assumed that they are all "OFF". 2281 In this example the TGW reserved 209.110.59.33 as the IP address for 2282 the RTP media stream and port number as 40000. 2284 Step 2: 2285 TGW1 to MGC: 2286 MEGACO/1 [209.110.59.34]: 25000 2287 Reply = 1234 { 2288 Co 2289 ntext = 1 { 2290 Add = Trunk1/line1, 2291 Add = EphA{ 2292 Media { 2293 Local { 2294 v=0 2295 o=- 2890844522 2890842813 IN IP4 209.110.59.34 2296 s=- 2297 t= 00 2298 c=IN IP4 209.110.59.33 2299 m=audio 40000 RTP/AVP 4 2300 } 2301 } ; RTP profile for G723 is 4 2302 } 2303 } 2304 } 2306 In this example as mentioned earlier it doesn't assume any specific 2307 signaling in the other side of the Trunking gateway. Thus this 2308 eliminates the complexion of reporting the address information and 2309 alerting the end user. The MGC hence "Adds" a physical termination. 2310 The wildcard $ is used here to enable the Trunking gateway to choose 2311 one of its trunks on the other side of the Trunking gateway. The 2312 ephemeral termination is requested to create with the under specified 2313 SDP local information and the remote SDP information. 2315 Step 3 2316 MGC to TGW2: 2317 MEGACO/1 [216.33.33.61]: 27000 2318 Transaction = 1235 { 2319 Context = $ { 2320 Add = Trunk2/$ {Media { 2321 LocalControl {Mode = SendRecv}}, 2322 }, 2323 Add = $ {Media { 2324 LocalControl { 2325 Mode = Receiveonly, 2326 }, 2327 Local { 2328 v=0 2329 c=IN IP4 $ 2330 m=audio $ RTP/AVP 4 2332 }, 2333 Remote { 2334 v=0 2335 o=- 2890844522 2890842813 IN IP4 209.110.59.34 2336 s=- 2337 t= 00 2338 c=IN IP4 209.110.59.33 2339 m=audio 40000 RTP/AVP 4 2340 } ; RTP profile for G.723 is 4 2341 } 2342 } 2343 } 2344 } 2345 } 2346 The Trunking gateway2 then process the command and does the necessary 2347 signaling towards the other side of the Trunking gateway. The seized 2348 trunk identifier is returned in the Add response for physical 2349 termination. In the response for the ephemeral termination, the TGW 2350 returns the local information of the ephemeral termination created. 2351 In this example the TGW creates a context with ContextID 2. 2353 Step 4 2354 TGW2 to MGC: 2355 MEGACO/1 [207.176.47.89]: 26000 2356 Reply = 1235 { 2357 Context = 2 { 2358 Add = Trunk2/line1, 2359 Add = EphB{ 2360 Media { 2361 Local { 2362 v=0 2363 o=- 2890844523 2890842814 IN IP4 207.176.47.89 2364 s=- 2365 t= 00 2366 c=IN IP4 207.176.47.90 2367 m=audio 40000 RTP/AVP 4 2368 } 2369 } ; RTP profile for G723 is 4 2370 } 2371 } 2372 } 2373 Once these MGC receives the answer of the call by the end user (through 2374 an entity outside the scope of the flow), changes the mode of the 2375 termination towards the both Trunking gateways. The MGC also indicates 2376 the remote SDP information for the TGW1.Thus enabling the exchange of 2377 media parameter information to both the Trunking gateways. 2379 Step 5 2380 MGC to TGW1: 2382 MEGACO/1 [216.33.33.61]: 27000 2383 Transaction = 1236 { 2384 Context = 1 { 2385 Modify = Trunk1/line1 { 2386 Media { 2387 LocalControl { 2388 Mode = SendRecv} 2389 } 2390 } 2391 Modify = EphA { 2392 Media { 2393 LocalControl { 2394 Mode = SendRecv} 2395 Remote { 2396 v=0 2397 o=- 2890844523 2890842814 IN IP4 207.176.47.89 2398 s=- 2399 t= 00 2400 c=IN IP4 207.176.47.90 2401 m=audio 40000 RTP/AVP 4 2402 } 2403 } ; RTP profile for G723 is 4 2404 } 2405 } 2406 } 2407 } 2409 The TGW1 after receiving the command from MGC does the necessary 2410 processing to update and processing the remote SDP information. The 2411 mode of the terminations is modified to send receive. The response 2412 of the transaction is sent back to MGC. 2414 Step 6 2415 TGW1 to MGC: 2416 MEGACO/1 [209.110.59.34]: 25000 2417 Reply = 1236 { 2418 Context = 1 { 2419 Modify = Trunk1/line1, 2420 Modify = EphA { 2421 } 2422 } 2423 } 2424 Similar command is generated from the MGC towards the second 2425 Trunking gateway. 2427 Step 7 2428 MGC to TGW1: 2429 MEGACO/1 [216.33.33.61]: 27000 2430 Transaction = 1237 { 2431 Context = 2 { 2432 Modify = Trunk2/line1 { 2433 Media { 2434 LocalControl { 2435 Mode = sendrecv} 2436 } 2437 } 2438 }, 2439 Modify = EphB { 2440 Media { 2441 LocalControl { 2442 Mode = sendrecv} 2443 } 2444 } 2445 } 2446 } 2447 The TGW2 after receiving the mode change information in Modify 2448 command responds to it. 2450 Step 8 2451 TGW1 to MGC: 2452 MEGACO/1 [209.110.59.34]: 25000 2453 Reply = 1237 { 2454 Context = 2 {Modify = Trunk1/line1, Modify = EphB} 2455 } 2456 The RTP media flow takes place once the modes of the terminations are 2457 changed to send receive. The MGC is intimated about the call clearing 2458 from an external entity. The MGC then generates subtract commands to 2459 both the TGWs. 2461 Step 9 2462 MGC to TGW2: 2463 MEGACO/1 [216.33.33.61]: 27000 2464 Transaction = 1238 { 2465 Context = 1 { 2466 Subtract = Trunk1/line1{Audit{ }}, 2467 Subtract = EphA {Audit{Statistics}} 2468 } 2469 } 2470 The TGW responds with the Statistics in the Subtract response for the 2471 ephemeral termination. The context is created as an side effect of 2472 deleting both the terminations in the context. 2474 Step 10: 2475 TGW2 to MGC: 2476 MEGACO/1 [207.176.47.89]:26000 2477 Reply = 1238 { 2478 Context = 1 { 2479 Subtract = Trunk1/line1 2480 Subtract = EphA { 2481 Statistics { 2482 rtp/ps=987, ; packets sent 2483 nt/os=65432, ; octets sent 2484 rtp/pr=1234, ; packets received 2485 nt/or=56789, ; octets received 2486 rtp/pl=10, ; % packets lost 2487 rtp/jit=30, 2488 rtp/delay=30 ; average latency 2489 } 2490 } 2491 } 2492 } 2493 A similar command is generated from the MGC towards the second TGW. 2494 Step 11 2495 MGC to TGW: 2496 MEGACO/1 [216.33.33.61]: 27000 2497 Transaction = 1239 { 2498 Context = 2 { 2499 Subtract = Trunk2/line1{Audit{ }}, 2500 Subtract = EphB {Audit{Statistics}} 2501 } 2502 } 2503 The TGW responds to the subtract commands generated by MGC. 2505 Step 12 2506 TGW to MGC: 2507 MEGACO/1 [209.110.59.34]:25000 2508 Reply = 1239 { 2509 Context = 2 { 2510 Subtract = Trunk2/line1 2511 Subtract = EphB { 2512 Statistics { 2513 rtp/ps=1234, ; packets sent 2514 nt/os=56789, ; octets sent 2515 rtp/pr=987, ; packets received 2516 nt/or=65432, ; octets received 2517 rtp/pl=10, ; % packets lost 2518 rtp/jit=30, 2519 rtp/delay=30 ; average latency 2520 } 2521 } 2522 } 2523 } 2524 The two Trunking gateways are now ready to receive further commands 2525 from MGC. The terminations are present in the idle state. 2527 2.5 Call between Residential gateway and SS7 trunk in TGW 2528 The calls flow scenarios from 2.2 to 2.4 illustrated the Trunking 2529 gateway without considering the signaling performed at the other side 2530 of the Trunking gateway. In this section we will illustrate the call 2531 flow scenario similar to the one in section 2.2. The emphasis here will 2532 be both on the Megaco messages exchanged between MG and MGC and also 2533 the signaling that towards the other side of the Trunking gateway. 2534 Here in this example the CCS SS7 is assumed. The packages that 2535 supported are Call progress tone generation package, analog line 2536 supervision package, generic package, RTP package 2537 and Network package 2538 for the RGW and Network and RTP package for the TGW. 2540 _____________________________________________________________________ 2541 | | | | 2542 USERA | RGW1 | MGC | TGW | SS7 Switch 2543 _____________|___________|___________|______________|________________ 2544 | | | | | 2545 | | | | | 2546 | |<----------| | | 2547 | |Modify to | | | 2548 | |check offhook | | 2549 | |---------->| | | 2550 | |Modify Resp| | | 2551 |----------->| | | | 2552 |UserA offhook | | | 2553 | |---------->| | | 2554 | |Notify offhook | | 2555 | |<----------| | | 2556 | |Notify Resp| | | 2557 | |<----------| | | 2558 | |Modify SG:dialtone | | 2559 | |ED:al/on,dd/ce{Dmap1} | | 2560 | |DM:Dmap1 = 2XXX | | 2561 |<-----------| | | | 2562 |user hears |---------->| | | 2563 | Dial Tone |Modify Resp| | | 2564 | | | | | 2565 |----------->| | | | 2566 |User Dials Digits | | | 2567 | |---------->| | | 2568 | |Notify digits | | 2569 | |<----------| --------------------------->| 2570 | |Notify Response IAM | 2571 | |<----------| | | 2572 | | Add TermA | | | 2573 | | Add $, Local SDP Info -underspecified | 2574 | | | | | 2575 | | |<----------------------------| 2576 | |---------->| ACM | 2577 | |Add Resp TermA | | 2578 | |Add Resp Local SDP (Specified) | 2579 | | |---------->| | 2580 | | |Add Phy | | 2581 | | |Add $ Local(Underspecified) | 2582 | | | Remote SDP (Specified) | 2583 | | |<----------| | 2584 | | |Add Resp Phy | 2585 | | |Add Resp EphB Local Specified| 2586 | | Modify TermA SD: cg/rt| | 2587 |<-----------| | | | 2588 | User hears Ring back tone | | 2589 | |---------->| | | 2590 | | Modify Resp TermA | | 2591 | | |<----------------------------| 2592 | | | ANM | 2593 | |<----------| | | 2594 | |Modify TermA SendRecv | | 2595 | |Modify EphA Remote(Specified) SendRecv | 2596 | |---------->| | | 2597 | |Modify Resp| | | 2598 | | |---------->| | 2599 | | | Modify Trunk1/line1 mode=sendrecv 2600 | | | Modify EphB mode=sendrecv | 2601 | | |<----------| | 2602 | | | Modify Resp Trunk1/line1 | 2603 | | | Modify Resp EphB | 2604 |/----------------------------------\| | 2605 | RTP MEDIA | | 2606 |\----------------------------------/| | 2607 |----------->| | | | 2608 |UserA goes OnHook | | | 2609 | |---------->| | | 2610 | |Notify OnHook | | 2611 | |<----------| | | 2612 | |Notify Resp| | | 2613 | |<----------| | | 2614 | |Subtract TermA | | 2615 | |Subtract EphA | | 2616 | | |---------------------------->| 2617 | | | REL | 2618 | |---------->| | | 2619 | |Subtract Resp TermA | | 2620 | |Subtract Resp EphA Statistics | 2621 | | |---------->| | 2622 | | |Subtract Phy | 2623 | | |Subtract EphB | 2624 | | |<----------------------------| 2625 | | | RLC | 2626 | | |<----------| | 2627 | | |Subtract Resp Phy | 2628 | | |Subtract Resp EphB Statistics| 2629 |____________|___________|___________|_________________| 2631 The MGC generates modify command for to the residential gateway to 2632 check for offhook for Termination TermA. In this message the event 2633 offhook has an embedded signal descriptor and embedded event descriptor. 2634 The embedded signal descriptor is sent for application of dial tone 2635 immediately after the detection of the offhook event and the event 2636 descriptor then will be updated with the onhook and the digit map 2637 completion event. The Digit map is also defined in the digit map 2638 descriptor. 2640 Step 1 2641 MGC to RGW: 2642 MEGACO/1 [216.33.33.61]:27000 2643 Transaction = 1234 { 2644 Context = - { 2645 Modify = TermA { 2646 Media { 2647 LocalControl { 2648 Mode = ReceiveOnly} 2649 }, 2650 DigitMap= Dmap1{(2XXX)} 2651 Events = 1111 {al/of Embed { signals {cg/dt}, Events=1112 { al/on}, 2652 {dd/ce {Dmap1}}} 2653 } 2654 } 2655 } 2657 The MG after receiving the MGC's message responds to it. 2659 Step 2 2660 RGW to MGC: 2661 MEGACO/1 [209.110.59.34]: 25000 2662 Reply = 1234 { 2663 Context = - {Modify = TermA} 2664 } 2666 When the user A goes offhook RGW detects the offhook event and as it 2667 is listed in the event descriptor reports the event detection using 2668 Notify command. 2670 Step 3 2671 RGW to MGC: 2672 MEGACO/1 [209.110.59.34]:25000 2673 Transaction = 2000 { 2674 Context = - { 2675 Notify = TermA {ObservedEvents =1111 { 2676 20010202T10000000:al/of}} 2677 } 2678 } 2679 the MGC responds with the Notify response. 2681 Step 4 2682 MGC to RGW: 2683 MEGACO/1 [216.33.33.61]: 27000 2684 Reply = 2000 { 2685 Context = - {Notify = TermA} 2686 } 2688 The digit map is active on the termination TermA. When the user dials 2689 the digits the they are reported to MGC through Notify command 2690 . 2692 Step 5 2693 RGW to MGC: 2694 MEGACO/1 [209.110.59.34]: 25000 2695 Transaction = 2001 { 2696 Context = - { 2697 Notify = TermA {ObservedEvents =1112 { 2698 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 2699 } 2700 } 2702 MGC after receiving the Notify command responds back with the 2703 Notify response. 2705 Step 6 2706 MGC to RGW: 2707 MEGACO/1 [216.33.33.61]: 27000 2708 Reply = 2001 { 2709 Context = - {Notify = TermA} 2710 } 2712 The MGC generates the Add command for adding the physical termination 2713 TermA and to create an ephemeral termination EphA. The local SDP 2714 information for the ephemeral termination EphA is under specified to 2715 enable the RGW to allocate the necessary values by itself. The mode of 2716 the two terminations is set to receive only. 2718 Step 7 2719 MGC to RGW: 2720 MEGACO/1 [216.33.33.61]: 27000 2721 Transaction = 1235 { 2722 Context = $ { 2723 Add = TermA { 2724 Media { 2725 { 2726 LocalControl { 2727 Mode = ReceiveOnly, 2728 }, 2729 } 2730 Add = $ { 2731 Media { 2732 { 2733 LocalControl { 2734 Mode = ReceiveOnly, 2735 }, 2736 Local { 2737 v=0 2738 c=IN IP4 $ 2739 m=audio $ RTP/AVP 4 2740 } 2741 } 2742 } 2743 } 2744 } 2746 MG after creating the context adds the physical termination TermA. In 2747 this case MG creates a context with ContextId 1. The ephemeral 2748 termination EphA is created and added to the context 1. The MG reserves 2749 resources for the local SDP information. In this case the IP address 2750 allocated is 209.110.59.33 and the port number used is 30000. The MG 2751 responds to the Add command with this information in the response to 2752 MGC. 2754 Step 8 2755 RGW to MGC: 2756 MEGACO/1 [209.110.59.34]: 25000 2757 Reply = 1235 { 2758 Context = 1 { 2759 Add = TermA, 2760 Add=EphA{ 2761 Media { 2762 Local { 2763 v=0 2764 o=- 2890844523 2890842814 IN IP4 209.110.59.34 2765 s=- 2766 t= 00 2767 c=IN IP4 209.110.59.33 2768 m=audio 30000 RTP/AVP 4 2769 a=recvonly 2770 } ; RTP profile for G.723 is 4 2771 } 2772 } 2773 } 2774 } 2775 } 2777 In this example as mentioned earlier the CCS SS7 signaling is assumed 2778 towards the other side of the Trunking gateway. The IAM message is 2779 generated towards the SS7 switch, with the necessary information about 2780 the called party and calling party. The SS7 switch responds with ACM 2781 indicating that address complete message towards the Trunking gateway. 2782 When the ANM "answer" message is received the MGC Adds a physical 2783 termination. The wildcard $ is used here to enable the Trunking gateway 2784 to choose one of its trunks on the other side of the Trunking gateway. 2785 The ephemeral termination is requested to create with the under 2786 specified SDP local information and the remote SDP information. 2788 Step 9 2789 MGC to TGW 2790 MEGACO/1 [216.33.33.61]: 27000 2791 Transaction = 1236 { 2792 Context = $ { 2793 Add = Trunk1/$ {Media { 2794 LocalControl {Mode = SendRecv}}, 2795 }, 2796 Add = $ {Media { 2797 LocalControl { 2798 Mode = Receiveonly, 2799 }, 2800 Local { 2801 v=0 2802 c=IN IP4 $ 2803 m=audio $ RTP/AVP 4 2805 }, 2806 Remote { 2807 v=0 2808 o=- 2890844523 2890842814 IN IP4 209.110.59.34 2809 s=- 2810 t= 00 2811 c=IN IP4 209.110.59.33 2812 m=audio 30000 RTP/AVP 4 2813 } ; RTP profile for G.723 is 4 2814 } 2815 } 2816 } 2817 } 2818 } 2820 The Trunking gateway then processes the command and does the necessary 2821 signaling towards the other side of the Trunking gateway. The seized 2822 trunk identifier is returned in the Add response for physical 2823 termination. In the response for the ephemeral termination, the TGW 2824 returns the local information of the ephemeral termination created. In 2825 this example the TGW creates a context with ContextID 2. 2827 Step 10 2828 TGW to MGC: 2829 MEGACO/1 [207.176.47.89]: 26000 2830 Reply = 1236 { 2831 Context = 2 { 2832 Add = Trunk1/line1, 2833 Add = EphB{ 2834 Media { 2835 Local { 2836 v=0 2837 o=- 2890844524 2890842815 IN IP4 207.176.47.89 2838 s=- 2839 t= 00 2840 c=IN IP4 207.176.47.90 2841 m=audio 40000 RTP/AVP 4 2842 } 2843 } ; RTP profile for G723 is 4 2844 } 2845 } 2846 } 2847 The MGC after recieving the ACM (with the alerting information element set) , 2848 generates Modify command towards the Residential gateway for generating 2849 ring back tone to the calling subscriber. The gateway responds with successful 2850 execution of the command. 2851 As mention earlier MGC after receiving the ANM message to indicate the 2852 status of the end user it forwards the remote SDP information for the 2853 RGW and changes the mode for the termination both at RGW and TGW to 2854 SendRecv. 2856 Step 11 2857 MGC to RGW: 2859 MEGACO/1 [216.33.33.61]: 27000 2860 Transaction = 1237 { 2861 Context = 1 { 2862 Modify = TermA { 2863 Media { 2864 LocalControl { 2865 Mode = sendrecv} 2866 } 2867 } 2868 Signals { } 2869 }, 2870 Modify = EphA { 2871 Media { 2872 LocalControl { 2873 Mode = sendrecv} 2874 Remote { 2875 v=0 2876 o=- 2890844524 2890842815 IN IP4 207.176.47.89 2877 s=- 2878 t= 00 2879 c=IN IP4 207.176.47.90 2880 m=audio 40000 RTP/AVP 4 2881 } 2882 } ; RTP profile for G723 is 4 2883 } 2884 } 2885 } 2886 } 2888 The RGW after receiving the Modify command from MGC responds back with 2889 the response. 2890 Step 12 2891 RGW to MGC: 2892 MEGACO/1 [209.110.59.34]: 25000 2893 Reply = 1237 { 2894 Context = 1 {Modify = TermA, Modify = EphA} 2895 } 2897 The MGC also generates commands to the TGW to change the mode of the 2898 Ephemeral termination to send receive. Thus enabling the virtual voice 2899 path between the two ephemeral terminations. 2901 Step 13 2902 MGC to TGW: 2903 MEGACO/1 [216.33.33.61]: 27000 2904 Transaction = 1238 { 2905 Context = 2 { 2906 Modify = Trunk1/line1 { 2907 Media { 2908 LocalControl { 2909 Mode = sendrecv} 2910 } 2911 } 2912 }, 2913 Modify = EphB { 2914 Media { 2915 LocalControl { 2916 Mode = sendrecv} 2917 } 2918 } 2919 } 2920 } 2921 The TGW after receiving the mode change information in Modify command 2922 responds to it. 2924 Step 14 2925 TGW to MGC: 2926 MEGACO/1 [207.176.47.89]: 26000 2927 Reply = 1238 { 2928 Context = 2 {Modify = Trunk1/line1, Modify = EphB} 2929 } 2930 Now RTP media flow takes place. In the example the UserA goes onhook 2931 to terminate the call. The RGW after detecting the event reports the 2932 same to MGC in the Notify command. 2934 Step 15: 2935 RGW to MGC: 2936 MEGACO/1 [209.110.59.34]: 25000 2937 Transaction = 2002 { 2938 Context = 1 { 2939 Notify = TermA {ObservedEvents =1112 { 2940 20010202T10030000:al/on} 2941 } 2942 } 2943 } 2944 The MGC responds to the RGWs Notify message. 2946 Step 16 2947 MGC to RGW: 2948 MEGACO/1 [216.33.33.61]: 27000 2949 Reply = 2002 { 2950 Context = 1 { 2951 Notify = TermA 2952 } 2953 } 2954 The MGC now generates subtract commands both to the RGW and the TGW. 2956 Madhubabu, et al. 2958 The mechanism of generating call progress tone towards the called user 2959 is not shown for simplicity. The two Subtract commands are clubbed in 2960 a single action. 2962 Step 17 2963 MGC to RGW 2964 MEGACO/1 [216.33.33.61]: 27000 2965 Transaction = 1239 { 2966 Context = 1 { 2967 Subtract = TermA {Audit {}}, 2968 Subtract = EphA {Audit {Statistics}} 2969 } 2970 } 2971 The MG subtracts the two terminations from the context. The context 2972 itself is deleted with the subtract of the last termination from it. 2973 The MG1 responds to this transaction from MGC with statistics on 2974 ephemeral termination. 2976 Step 18 2977 RGW to MGC: 2978 MEGACO/1 [209.110.59.34]:25000 2979 Reply = 1239 { 2980 Context = 1 { 2981 Subtract = TermA 2982 Subtract = EphA { 2983 Statistics { 2984 rtp/ps=1234, ; packets sent 2985 nt/os=56789, ; octets sent 2986 rtp/pr=987, ; packets received 2987 nt/or=65432, ; octets received 2988 rtp/pl=10, ; % packets lost 2989 rtp/jit=30, 2990 rtp/delay=30 ; average latency 2991 } 2992 } 2993 } 2994 } 2996 The MGC generates a REL "release" message towards the SS7 switch. 2997 After receiving the RLC "release complete" message command is 2998 generated towards the TGW to subtract the two terminations from context. 3000 Step 19 3001 MGC to TGW: 3002 MEGACO/1 [216.33.33.61]: 27000 3003 Transaction = 1240 { 3004 Context = 2 { 3005 Subtract = Trunk1/line1{Audit{ }}, 3006 Subtract = EphB {Audit{Statistics}} 3007 } 3008 } 3009 The TGW responds to the subtract commands generated by MGC. 3011 Step 26 3012 TGW to MGC: 3013 MEGACO/1 [209.110.59.34]:25000 3014 Reply = 1240 { 3015 Context = 2 { 3016 Subtract = Trunk1/line1 3017 Subtract = EphB { 3018 Statistics { 3019 rtp/ps=987, ; packets sent 3020 nt/os=65432, ; octets sent 3021 rtp/pr=1234, ; packets received 3022 nt/or=56789, ; octets received 3023 rtp/pl=10, ; % packets lost 3024 rtp/jit=30, 3025 rtp/delay=30 ; average latency 3026 } 3027 } 3028 } 3029 } 3031 2.6 Call between SS7 trunk in TGW and residential gateway 3033 In the call scenario explained in section 2.5, we illustrated the call flow between 3034 MGC and MG with SS7 signaling towards the trunk side. The residential Gateway user in that scenario 3035 initiated the call. In this scenario we illustrate a similar situation 3036 where a call is initiated by a user connected to the PSTN network that 3037 uses SS7 signaling. The packages that are supported include 3038 Call progress tone generation package, analog line supervision 3039 package, generic package, RTP package and Network package for the RGW 3040 and Network and RTP package for the TGW. 3042 ______________________________________________________________________ 3043 | | | | 3044 SS7 Switch | TGW | MGC | RGW | USERB 3045 ____________|________ ___|___________|______________|_________________ 3046 | | | | | 3047 | | | | | 3048 |----------------------->| | | 3049 | IAM | | | 3050 | | | | | 3051 | | | | | 3052 |<-----------------------| | | 3053 | ACM | | | 3054 | | | | | 3055 | |<----------| | | 3056 | | Add Trunk1/line1 | | 3057 | | Add $, Local SDP Info -underspecified | 3058 | |---------->| | | 3059 | |Add Resp Trunk1/line1 | | 3060 | |Add Resp EphB Local SDP (Specified) | 3061 | | |---------->| | 3062 | | |Add TermA SD: cg/ri ED: al/of | 3063 | | |Add $ Local(Underspecified) | 3064 | | | Remote SDP (Specified) | 3065 | | | | | 3066 | | | |------------------>| 3067 | | | | UserB Phone Ringing 3068 | | |<----------| | 3069 | | |Add Resp TermA | 3070 |<-----------------------|Add Resp EphA Local SDP Specified 3071 | CPG | |<------------------| 3072 | | | |UserB goes Offhook | 3073 |<-----------------------| | | 3074 | ANM | | | 3075 | | |<----------| | 3076 | | |Notify Offhook | 3077 | | |---------->| | 3078 | | | Notify Resp | 3079 | |<----------| | | 3080 | |Modify Trunk1/line1 SendRecv | 3081 | |Modify EphB Remote SDP(Specified) SendRecv| 3082 | |---------->| | | 3083 | |Modify Resp| | | 3084 | | |---------->| | 3085 | | |Modify Phy SendRecv | 3086 | | |Modify EphB SendRecv | 3087 | | |<----------| | 3088 | | |Modify Resp| | 3089 | |/-----------------------------------------\| 3090 | | RTP MEDIA | 3091 | |\-----------------------------------------/| 3092 |----------------------->| | | 3093 | REL | | | 3094 | | |---------->| | 3095 | | |Modify TermB SD:BusyTone | 3096 | | | |------------------>| 3097 | | | | Busy tone to UserB| 3098 | | |<----------| | 3099 | | |Modify Resp| | 3100 | |<----------| | | 3101 | |Subtract Phy | | 3102 | |Subtract EphB | | 3103 | |---------->| | | 3104 | |Subtract Resp Phy | | 3105 | |Subtract Resp EphB Statistics | 3106 | | | |<------------------| 3107 | | | | UserB goes Onhook | 3108 |<-----------------------| | | 3109 | RLC | | | 3110 | | |<----------| | 3111 | | |Notify Onhook | 3112 | | |---------->| | 3113 | | |Notify Resp| | 3114 | 3115 | |---------->| | 3116 | | |Subtract TermB | 3117 | | |Subtract EphB | 3118 | | |<----------| | 3119 | | |Subtract Resp TermB | 3120 | | |Subtract Resp EphB Statistics | 3121 |____________|___________|___________|___________________| 3123 The Media Gateway controller is intimated about the call initiation 3124 when the Signaling Gateway receives an IAM message from its peer. 3125 The MGC,after receiving the IAM message, Instructs the Signaling 3126 Gateway to respond with an ACM message indicating that the called 3127 party address is sufficient to identify the end user. The ACM message 3128 is sent to the SS7 switch through the signaling gateway. The circuit to 3129 be used for media information is indicated by the SS7 message 3130 received by the MGC. 3132 The MGC meanwhile 3133 generate ADD commands to both the Trunking gateway and Residential 3134 gateway. The message towards the Trunking gateway includes the 3135 addition of physical circuit that was seized for media transfer. The 3136 request for creating ephemeral termination is also sent in the same 3137 request. The Local SDP information is under specified allowing the 3138 Trunking gateway to choose the necessary SDP parameters. 3140 Step 1 3141 MGC to TGW 3142 MEGACO/1 [216.33.33.61]: 27000 3143 Transaction = 1235 { 3144 Context = $ { 3145 Add = Trunk1/line1 {Media { 3146 LocalControl {Mode = SendRecv}}, 3147 }, 3148 Add = $ {Media { 3149 LocalControl { 3150 Mode = Receiveonly, 3151 }, 3152 Local { 3153 v=0 3154 c=IN IP4 $ 3155 m=audio $ RTP/AVP 4 3157 } 3158 } 3159 } 3160 } 3161 } 3162 } 3164 The Trunking gateway after processing the above message, creates a 3165 new context with a contextID in this example. 3166 The ephemeral termination is created and added to the same context as 3167 the physical termination. The ephemeral termination added in this 3168 example is EPHA. The local SDP parameters are specified in the response. 3169 The IP address chosen for the media transport in this example is 3170 207.176.47.88, and the port number specified 30000. 3172 Step 2 3173 TGW to MGC: 3174 MEGACO/1 [207.176.47.89]: 26000 3175 Reply = 1235 { 3176 Context = 1 { 3177 Add = Trunk1/line1, 3178 Add = EphB { 3179 Media { 3180 Local { 3181 v=0 3182 o=- 2890844524 2890842815 IN IP4 207.176.47.89 3183 s=- 3184 t= 00 3185 c=IN IP4 207.176.47.88 3186 m=audio 30000 RTP/AVP 4 3187 } 3188 } ; RTP profile for G723 is 4 3189 } 3190 } 3191 } 3193 The MGC specifies the local SDP information it has received from 3194 the TG as the remote SDP information in the ADD command it generates 3195 towards the RG. The MGC also requests the RGW to apply ring singal and check for offhook on TermA. 3196 The commands for adding the physical termination TermA and 3197 the ephemeral termination to be created are sent in the same transaction. 3198 The MGC requests creation of context and to add the two terminations 3199 in the same. 3201 Step 3 3202 MGC to RGW 3203 MEGACO/1 [216.33.33.61]: 27000 3204 Transaction = 1236 { 3205 Context = $ { 3206 Add = TermA {Media { 3207 Events = 1111 {al/of} 3208 Signals = {al/ri} ; For application of ring signal 3209 LocalControl {Mode = SendRecv}}, 3210 }, 3211 Add = $ {Media { 3212 LocalControl { 3213 Mode = Receiveonly, 3214 }, 3215 Local { 3216 v=0 3217 c=IN IP4 $ 3218 m=audio $ RTP/AVP 4 3220 } 3221 Remote{ 3222 v=0 3223 o=- 2890844524 2890842815 IN IP4 207.176.47.89 3224 s=- 3225 t= 00 3226 c=IN IP4 207.176.47.88 3227 m=audio 30000 RTP/AVP 4 3228 } 3229 } ; RTP profile for G723 is 4 3230 } 3231 } 3232 } 3234 The Residential gateway creates a context with ContextId 2. It adds the 3235 physical termination TermA in that context. The ephemeral termination 3236 EPHB is created with the specified remote SDP information. The response from 3237 the MG specifies the local SDP information. 3239 Step 4 3240 RGW to MGC: 3241 MEGACO/1 [209.110.59.34]: 25000 3242 Reply = 1236 { 3243 Context = 2 { 3244 Add = TermA, 3245 Add = EphA{ 3246 Media { 3247 Local { 3248 v=0 3249 o=- 2890844525 2890842816 IN IP4 209.110.59.34 3250 s=- 3251 t= 00 3252 c=IN IP4 209.110.59.33 3253 m=audio 30000 RTP/AVP 4 3254 } 3255 } ; RTP profile for G723 is 4 3256 } 3257 } 3258 } 3259 Lets assume that the user goes 'offhook' after hearing the ring tone.The 3260 same event is reported to the MGC in the notify command. 3262 Step 5 3263 RGW to MGC: 3264 MEGACO/1 [209.110.59.34]:25000 3265 Transaction = 2000 { 3266 Context = 2 { 3267 Notify = TermA {ObservedEvents =1111 { 3268 20010202T10000000:al/of}} 3269 } 3270 } 3272 the MGC responds the Notify command with the Notify response. 3274 Step 6 3275 MGC to RGW: 3276 MEGACO/1 [216.33.33.61]: 27000 3277 Reply = 2000 { 3278 Context = 2 {Notify = TermA} 3279 } 3281 After receiving the offhook event MGC instructs the Signaling Gateway to 3282 generate an ANM message towards its signaling peer. This message informs 3283 the peer that the called user has answered the call. 3284 The MGC updates the Trunking gateway with remote SDP information 3285 in the Modify command. 3286 Step 7 3287 MGC to TGW 3288 MEGACO/1 [216.33.33.61]: 27000 3289 Transaction = 1237 { 3290 Context = 1 { 3291 Modify = EphB 3292 {Media { 3293 LocalControl { 3294 Mode = SendRecv, 3295 }, 3296 Remote{ 3297 v=0 3298 o=- 2890844525 2890842816 IN IP4 209.110.59.34 3299 s=- 3300 t= 00 3301 c=IN IP4 209.110.59.33 3302 m=audio 30000 RTP/AVP 4 3303 } 3304 } 3305 } 3306 } 3307 } 3308 } 3310 The Trunking gateway responds to the Modify command. 3312 Step 8 3313 TGW to MGC: 3314 MEGACO/1 [207.176.47.89]: 26000 3315 Reply = 1237 { 3316 Context = 1 { 3317 Modify = EphB 3318 } 3319 } 3320 The MGC updates the mode of the terminations on the Residential Gateway 3321 Step 9 3322 MGC to RGW: 3323 MEGACO/1 [216.33.33.61]: 27000 3324 Transaction = 1238 { 3325 Context = 2 { 3326 Modify = TermA { 3327 Media { 3328 LocalControl { 3329 Mode = sendrecv} 3330 } 3331 } 3332 }, 3333 Modify = EphA { 3334 Media { 3335 LocalControl { 3336 Mode = sendrecv} 3337 } 3339 } 3340 } 3341 } 3342 The RGW after receiving the mode change information in Modify command 3343 responds to it. 3345 Step 10 3346 RGW to MGC: 3347 MEGACO/1 [209.110.59.34]: 25000 3348 Reply = 1238 { 3349 Context = 2 {Modify = TermA, Modify = EphA} 3350 } 3352 The RTP media can be transferred between the two. The call will 3353 be disconnected when one of the two users initiates call teardown. In this 3354 example we assume that the user connected to the SS7 domain initiates the 3355 termination of the Call. The SS7 switch generates the REL(Release) 3356 message towards the MGC. The MGC, after receiving the REL message, 3357 initiates the call teardown. The MGC generates a busy tones towards the 3358 user connected to the Residential gateway to 3359 indicate the disconnection 3360 of the call. The modify command is sent with event descriptor that 3361 lists the onhook event. 3363 Step 9 3364 MGC to RGW 3365 MEGACO/1 [216.33.33.61]: 27000 3366 Transaction = 1239 { 3367 Context = 2 { 3368 Modify = TermA { 3369 Signals { cg/bt }, 3370 Events = 1236 { al/on }, 3371 Media { LocalControl { recvonly } } 3372 } 3373 } 3374 } 3376 The Residential gateway responds with the Modify command response. 3378 Step 10 3379 RGW to MGC: 3380 MEGACO/1 [209.110.59.34]: 25000 3381 Reply = 1239 { 3382 Context = 2 { 3383 Modify = TermA, 3384 } 3385 } 3386 The media connection tear down process is completed by responding to the REL 3387 message with the RLC. The MGC subtracts the terminations added in the two 3388 Media gateways for this call. The Subtract command is sent to the 3389 Trunking gateway. The audit descriptor lists the statistics to enable 3390 statistics reporting to MGC from the Trunking gateway. 3392 Step 11 3393 MGC to TGW: 3394 MEGACO/1 [216.33.33.61]: 27000 3395 Transaction = 1240 { 3396 Context = 1 { 3397 Subtract = Trunk1/line1{Audit{ }}, 3398 Subtract = EphB {Audit{Statistics}} 3399 } 3400 } 3401 The TGW responds to the subtract command with the statistics on the Ephemeral 3402 termination. 3404 Step 12 3405 TGW to MGC: 3406 MEGACO/1 [209.110.59.34]:25000 3407 Reply = 1240 { 3408 Context = 1 { 3409 Subtract = Trunk1/line1 3410 Subtract = EphB { 3411 Statistics { 3412 rtp/ps=987, ; packets sent 3413 nt/os=65432, ; octets sent 3414 rtp/pr=1234, ; packets received 3415 nt/or=56789, ; octets received 3416 rtp/pl=10, ; % packets lost 3417 rtp/jit=30, 3418 rtp/delay=30 ; average latency 3419 } 3420 } 3421 } 3422 } 3424 After hearing the busy tone lets assume that the UserB goes onhook. The RG 3425 conveys this information to the MGC using the following NOTIFY message. 3427 Step 13 3428 RGW to MGC: 3429 MEGACO/1 [209.110.59.34]:25000 3430 Transaction = 2001 { 3431 Context = 2 { 3432 Notify = TermA {ObservedEvents =1236 { 3433 20010202T20000000:al/on}} 3434 } 3435 } 3437 The MGC responds the Notify command with the Notify response. 3439 Step 14 3440 MGC to RGW: 3441 MEGACO/1 [216.33.33.61]: 27000 3442 Reply = 2001 { 3443 Context = 2 {Notify = TermA} 3444 } 3446 The MGC after receiving the Notify for onhook from UserA generates 3447 transaction with two Subtract command for subtracting both the physical 3448 and ephemeral terminations from the Residential gateway. 3450 Step 15 3451 MGC to RGW: 3452 MEGACO/1 [216.33.33.61]: 27000 3453 Transaction = 1241 { 3454 Context = 2 { 3455 Subtract = TermA{Audit{ }}, 3456 Subtract = EphA {Audit{Statistics}} 3457 } 3458 } 3459 The RGW responds to the subtract commands generated by MGC. 3461 Step 16 3462 TGW to MGC: 3463 MEGACO/1 [209.110.59.34]: 26000 3464 Reply = 1241 { 3465 Context = 2 { 3466 Subtract = TermA 3467 Subtract = EphA { 3468 Statistics { 3469 rtp/ps=987, ; packets sent 3470 nt/os=65432, ; octets sent 3471 rtp/pr=1234, ; packets received 3472 nt/or=56789, ; octets received 3473 rtp/pl=10, ; % packets lost 3474 rtp/jit=30, 3475 rtp/delay=30 ; average latency 3476 } 3477 } 3478 } 3479 } 3481 2.7 Call between SS7 trunk in TGW and R2 trunk in TGW 3482 This section of the call flow illustrates the call between two Trunking 3483 gateways, one that does R2 signaling towards the PSTN and the second 3484 that does CCS SS7 towards the PSTN. In this example the user in the CCS SS7 3485 signaling network originates the call. The destination user is connected 3486 to the PSTN network with R2 signaling. The H.248.28 package is taken 3487 as the input for illustrating the events and signals used for 3488 communication between MG and MGC. The assumption of the package, 3489 that the compelled signaling is part of the MG to generate signals or 3490 detect events holds true for this call scenario also. 3492 ______________________________________________________________________ 3493 | | | | 3494 SS7 Switch | SS7TGW | MGC | R2TGW | R2Exch 3495 ____________|____________|___________|______________|_________________ 3496 | | | | | 3497 |----------->| | | | 3498 | IAM | | | | 3499 | |---------->| | | 3500 | | IAM | | | 3501 | | |----------->| | 3502 | | |Modify Phy Seize | 3503 | | | |--------------->| 3504 | | | | Seize | 3505 | | |<-----------| | 3506 | | |Modify Resp | | 3507 | | | |<---------------| 3508 | | | | Seize Ack | 3509 | | |<-----------| | 3510 | | |Notify OE:sa|--------------->| 3511 | | |----------->| Digits | 3512 | | |Notify Resp | | 3513 | |<----------| | | 3514 | | ACM | | | 3515 |<-----------| | | | 3516 | ACM | | | | 3517 | | | |<---------------| 3518 | | | | Answer | 3519 | | |<-----------| | 3520 | | | Notify OE:ans | 3521 | | |----------->| | 3522 | | |Notify Resp | | 3523 | |<----------| | | 3524 | | ANM | | | 3525 |<-----------| | | | 3526 | ANM | | | | 3527 | | |----------->| | 3528 | | |Add Phy | | 3529 | | |Add $ Local (Unspecified) | 3530 | | |<-----------| | 3531 | | |Add Phy Resp| | 3532 | | |Add Eph Resp| | 3533 | |<----------| | | 3534 | |Add Phy | | | 3535 | |Add $ Local (Unspecified) | 3536 | | Remote Specified | | 3537 | |---------->| | | 3538 | |Add Phy Resp | | 3539 | |Add Eph Resp | | 3540 | | |----------->| | 3541 | | | Modify EPH Remote specified (mode = sendrecv) 3542 | | |<-----------| | 3543 | | |Modify REsp Eph | 3544 | |<----------| | | 3545 | |Modify Eph mode=sendrecv| | 3547 | |---------->| | | 3548 | |Modify Resp| | | 3549 | |/----------------------\| | 3550 | | RTP MEDIA | | 3551 | |\----------------------/| | 3552 |----------->| | | | 3553 | REL | | | | 3554 | |---------->| | | 3555 | | REL | | | 3556 | | |----------->| | 3557 | | |Modify Phy ED:R2/clear | 3558 | | | |--------------->| 3559 | | | | Clear Forward | 3560 | | |<-----------| | 3561 | | |Modify Resp | | 3562 | | | |<---------------| 3563 | | | | Clear Back | 3564 | | |<-----------| | 3565 | | | Notify OE:clear | 3566 | | |----------->| | 3567 | | | Notify Resp| | 3568 | |<----------| | | 3569 | | RLC | | | 3570 |<-----------| | | | 3571 | RLC | | | | 3572 | |<----------| | | 3573 | |Sub Phy | | | 3574 | |Sub Eph | | | 3575 | |---------->| | | 3576 | |Sub Phy Resp | | 3577 | |Sub Eph Resp Statistics | | 3578 | | |----------->| | 3579 | | |Sub Phy | | 3580 | | |Sub Eph | | 3581 | | |<-----------| | 3582 | | |Sub Phy Resp| | 3583 | | |Sub Eph Resp Statistics | 3584 |____________|___________|____________|________________| 3586 When the MGC receives the IAM through the signaling gateway, it generates 3587 a Modify message towards the Trunking gateway that supports H.248.28 package. 3588 The signal descriptor has the seize signal and the events descriptor 3589 has the event seizeack. The seizeack event has an embedded signal 3590 "address". The Trunking gateway is instructed to seize a circuit and 3591 apply the address signals after the seize acknowledgement is received 3592 from the other R2 exchange. The calling party information can also be 3593 provided in the address signal. The embedded event of the seize 3594 acknowledgement event is the answer. This event has to be reported 3595 when the digits reach the other R2 exchange and there is answer from 3596 the terminating R2 exchange. The message from MGC to R2TGW is as 3597 follows. 3599 Step 1 3600 MGC to R2TGW 3601 MEGACO/1 [216.33.33.61]: 27000 3602 Transaction = 1234 { 3603 Context = - { 3604 Modify = Trunk1/line1 { 3605 Signals = {R2/sz} 3606 Events = 1111 {R2/sa Embed {signals {R2/address {si = 2992, di = 2989}}, 3607 Events=1112 {R2/clear, R2/answer} 3608 } 3609 } 3610 } 3611 The R2TGW after receiving the Modify command does the command 3612 processing and responds with Modify command response. 3614 Step 2 3615 R2TGW to MGC 3616 MEGACO/1 [209.110.59.34]: 25000 3617 Reply = 1234 { 3618 Context = - { 3619 Modify = Trunk1/line1 3620 } 3622 } 3624 The R2 TGW applies seize signal on the specified circuit group and after 3625 receiving the acknowledgement from the other R2 exchange updates the 3626 embedded events descriptor as the events descriptor. The R2TGW also 3627 generates a Notify command towards the MGC to indicate that the seize 3628 acknowledgement has been received. 3630 Step 3 3631 R2TGW to MGC: 3632 MEGACO/1 [209.110.59.34]: 25000 3633 Transaction = 2000 { 3634 Context = - { 3635 Notify = Trunk1/line1 {ObservedEvents =1111 { 3636 20010202T10000000:R2/sa}} 3637 } 3638 } 3640 the MGC responds the Notify command with the Notify response. 3642 Step 4 3643 MGC to R2TGW: 3644 MEGACO/1 [216.33.33.61]: 27000 3645 Reply = 2000 { 3646 Context = - {Notify = Trunk1/line1} 3647 } 3649 The MGC now generates the address complete message to the SS7 switch 3650 that has generated the IAM message. After receiving the answer message 3651 from the peer R2 exchange the R2TGW generates message to notify 3652 this event. 3654 Step 5 3655 R2TGW to MGC: 3656 MEGACO/1 [209.110.59.34]: 25000 3657 Transaction = 2001 { 3658 Context = - { 3659 Notify = Trunk1/line1 {ObservedEvents =1112 { 3660 20010202T10000000:R2/ans}} 3661 } 3662 } 3664 The MGC responds to the Notify command with the Notify response. 3666 Step 6 3667 MGC to R2TGW: 3668 MEGACO/1 [216.33.33.61]: 27000 3669 Reply = 2001 { 3670 Context = - {Notify = Trunk1/line1} 3671 } 3673 MGC generates the ANM message towards the SS7 switch through the 3674 signaling gateway. It also generates commands to add terminations into 3675 specific contexts. It generates a single transaction with two Add 3676 commands towards the TGW that supports R2 terminations. One command 3677 is to add the physical circuit group Trunk1/line and the other for the 3678 ephemeral termination. The SDP information is underspecified that instructs 3679 the TGW to choose the under specified parameters. 3681 Step 7 3682 MGC to R2TGW 3683 MEGACO/1 [216.33.33.61]: 27000 3684 Transaction = 1235{ 3685 Context = $ { 3686 Add = Trunk1/line1 {Media { 3687 LocalControl {Mode = SendRecv}}, 3688 }, 3689 Add = $ {Media { 3690 LocalControl { 3691 Mode = Receiveonly, 3692 }, 3693 Local { 3694 v=0 3695 c=IN IP4 $ 3696 m=audio $ RTP/AVP 4 3698 } 3699 } 3700 } 3701 } 3702 } 3703 } 3705 The R2 Trunking gateway after processing the Add command creates a new context with 3706 contextID 1 in this example. The ephemeral termination is created and 3707 added to the same context as the physical termination. The ephemeral 3708 termination added in this example is EPHA. The local parameters are 3709 specified in the response. The IP address chosen for the media 3710 transport in this example is 209.110.59.33, and the port number 3711 specified 30000. 3713 Step 8 3714 R2TGW to MGC: 3715 MEGACO/1 [209.110.59.34]: 25000 3716 Reply = 1235{ 3717 Context = 1 { 3718 Add = Trunk1/line1, 3719 Add = EphA { 3720 Media { 3721 Local { 3722 v=0 3723 o=- 2890844525 2890842816 IN IP4 209.110.59.34 3724 s=- 3725 t= 00 3726 c=IN IP4 209.110.59.33 3727 m=audio 30000 RTP/AVP 4 3728 } 3729 } ; RTP profile for G723 is 4 3730 } 3731 } 3732 } 3733 After receiving the response from the R2TGW, the MGC generates similar transaction 3734 with two ADD commands to the other TGW. The local SDP information 3735 indicated in the response from the R2TGW is specified as remote SDP information for the 3736 SS7TGW. The MGC conveys this information in the Add command. 3738 Step 9 3739 MGC to SS7TGW 3740 MEGACO/1 [216.3 3741 3.33.61]: 27000 3742 Transaction = 1236{ 3743 Context = $ { 3744 Add = Trunk2/line1 {Media { 3745 LocalControl {Mode = SendRecv}}, 3746 }, 3747 Add = $ {Media { 3748 LocalControl { 3749 Mode = Receiveonly, 3750 }, 3751 Local { 3752 v=0 3753 c=IN IP4 $ 3754 m=audio $ RTP/AVP 4 3756 } 3757 Remote{ 3758 v=0 3759 o=- 2890844525 2890842816 IN IP4 209.110.59.34 3760 s=- 3761 t= 00 3762 c=IN IP4 209.110.59.33 3763 m=audio 30000 RTP/AVP 4 3764 } 3765 } ; RTP profile for G723 is 4 3766 } 3768 } 3769 } 3771 The Trunking gateway creates a context with ContextId 2. It adds the 3772 physical termination Trunk2/line1 in that context. The ephemeral 3773 termination EPHB is created with the specified SDP information. The 3774 response from the MG specifies the local SDP information. 3776 Step 10 3777 SS7TGW to MGC: 3778 MEGACO/1 [207.176.47.89]: 26000 3779 Reply = 1236{ 3780 Context = 2 { 3781 Add = Trunk2/line1, 3782 Add = EphB{ 3783 Media { 3784 Local { 3785 v=0 3786 o=- 2890844525 2890842816 IN IP4 207.176.47.89 3787 s=- 3788 t= 00 3789 c=IN IP4 207.176.47.90 3790 m=audio 30000 RTP/AVP 4 3791 } 3792 } ; RTP profile for G723 is 4 3793 } 3794 } 3795 } 3797 The MGC after receiving the response generates a modify command to the 3798 R2TGW to inform the local SDP information of TGW as the remote SDP for 3799 the R2TGW. 3801 Step 11 3802 MGC to R2TGW 3803 MEGACO/1 [216.33.33.61]: 27000 3804 Transaction = 1237{ 3805 Context = 1 { 3806 Modify = EphA 3807 {Media { 3808 LocalControl { 3809 Mode = SendRecv, 3810 }, 3811 Remote{ 3812 v=0 3813 o=- 2890844525 2890842816 IN IP4 207.176.47.89 3814 s=- 3815 t= 00 3816 c=IN IP4 207.176.47.90 3817 m=audio 30000 RTP/AVP 4 3818 } 3819 } 3820 } 3821 } 3822 } 3823 } 3825 The R2 Trunking gateway responds to the Modify command. 3827 Step 12 3828 R2TGW to MGC: 3829 MEGACO/1 [207.176.47.89]: 26000 3830 Reply = 1237{ 3831 Context = 1 { 3832 Modify = EphA 3833 } 3834 } 3835 The RTP media flow is now established and the two users connected to the 3836 SS7 trunk and R2 trunk can start the conversation. After conversation any 3837 user can disconnect the call, in this example the user connected 3838 to the SS7 domain releases the call. The SS7 switch generates a REL 3839 message towards the MGC and the Signaling gateway forwards the same 3840 towards the MGC. The MGC initiates the tearing down of the 3841 call. This is done initially by generating a Modify command towards 3842 the R2 TGW to generate clear forward signal towards the R2 exchange. 3843 In the message the MGC sends a signal descriptor with clear signals 3844 and events descriptor with the clear in the event. The event in the 3845 events descriptor is for detecting the clear back signal generated 3846 from the R2 exchange. 3848 Step 13 3849 MGC to R2TGW: 3850 MEGACO/1 [216.33.33.61]: 27000 3851 Transaction = 1238{ 3852 Context = 1 { 3853 Context = Trunk1/line1{ 3854 signal { R2/clear}, 3855 Events = 1113{ R2/clear} 3856 } 3857 } 3859 The R2 TGW after receiving the commands does the signals and events 3860 descriptor processing and responds to the MGC with the Modify command 3861 response. 3863 Step 14 3864 R2TGW to MGC 3865 MEGACO/1 [209.110.59.34]: 25000 3866 Reply = 1238 { 3867 Context = 1 { 3868 Modify = Trunk1/line1 3869 } 3870 } 3872 Mean while the MGC generates the subtract message towards the 3873 originating SS7TGW to remove the terminations from the newly created 3874 context. 3876 Step 15 3877 MGC to SS7TGW: 3878 MEGACO/1 [216.33.33.61]: 27000 3879 Transaction = 1239 3880 Context = 2 { 3881 Subtract = Trunk2/line1{Audit{ }}, 3882 Subtract = EphB {Audit{Statistics}} 3883 } 3884 } 3885 The RGW responds to the subtract commands with the statistics on the Ephemeral termination. 3887 Step 16 3888 SS7TGW to MGC: 3889 MEGACO/1 [207.176.47.89]:26000 3890 Reply = 1239 3891 Context = 2 { 3892 Subtract = Trunk2/line1 3893 Subtract = EphB { 3894 Statistics { 3895 rtp/ps=987, ; packets sent 3896 nt/os=65432, ; octets sent 3897 rtp/pr=1234, ; packets received 3898 nt/or=56789, ; octets received 3899 rtp/pl=10, ; % packets lost 3900 rtp/jit=30, 3901 rtp/delay=30 ; average latency 3902 } 3903 } 3904 } 3905 } 3906 The MGC after receiving the response from the TGW instructs the 3907 Signaling gateway to generate a RLC (Release complete) message 3908 towards the peer SS7 switch. 3910 After detecting the clear back signal received from the peer R2 3911 exchange the R2TGW generates a Notify command towards the MGC. 3913 Step 17 3914 R2TGW to MGC: 3915 MEGACO/1 [209.110.59.34]:25000 3916 Transaction = 2002 { 3917 Context = - { 3918 Notify = TermA {ObservedEvents =1113 { 3919 20030202T10000000:R2/clear}} 3920 } 3921 } 3923 the MGC responds the Notify command with the Notify response. 3925 Step 18 3926 MGC to R2TGW: 3927 MEGACO/1 [216.33.33.61]: 27000 3928 Reply = 2002 { 3929 Context = - {Notify = TermA} 3930 } 3931 MGC after receiving the notify command generates subtract command to 3932 remove both the physical termination and ephemeral termination. 3934 Step 19 3935 MGC to R2TGW: 3936 MEGACO/1 [216.33.33.61]: 27000 3937 Transaction = 1240{ 3938 Context = 1 { 3939 Subtract = Trunk1/line1{Audit{ }}, 3940 Subtract = EphA {Audit{Statistics}} 3941 } 3942 } 3943 The R2TGW responds to the subtract commands generated by MGC. 3945 Step 20 3946 R2TGW to MGC: 3947 MEGACO/1 [209.110.59.34]:25000 3948 Reply = 1240{ 3949 Context = 1 { 3950 Subtract = Trunk1/line1 3951 Subtract = EphA { 3952 Statistics { 3953 rtp/ps=987, ; packets sent 3954 nt/os=65432, ; octets sent 3955 rtp/pr=1234, ; packets received 3956 nt/or=56789, ; octets received 3957 rtp/pl=10, ; % packets lost 3958 rtp/jit=30, 3959 rtp/delay=30 ; average latency 3961 } 3962 } 3963 } 3964 } 3965 Now the termination is free to take part in other calls. 3967 2.8 Call between R2 trunk in TGW and SS7 trunk in TGW 3969 This section of the call flow illustrates the call between two 3970 Trunking gateways, one that does R2 signaling towards one end and the 3971 second TGW CCS SS7. In this example the user in the R2 signaling 3972 network originates the call. The destination user is connected to 3973 the PSTN network with CCS SS7 signaling. The H.248.28 package is 3974 considered for illustrating the events and signals used for 3975 communication between MG and MGC. The assumption of the H.248.28, 3976 that the compelled signaling is part of the MG to generate signals 3977 or detect events holds true for this call scenario also. 3979 ______________________________________________________________________ 3980 | | | | 3981 R2Exchange | R2TGW | MGC | SS7TGW | SS7 Switch 3982 ____________|____________|___________|______________|_________________ 3983 | | | | | 3984 | |<-----------| | | 3985 | |Modify ED:sz{SD:sa ED:addr, cl} | 3986 | |---- 3987 ------->| | | 3988 | |Modify Resp | | | 3989 |----------->| | | | 3990 | Seize | | | | 3991 |<-----------| | | | 3992 |SeizeAck |----------->| | | 3993 | |Notify OE:sa| | | 3994 |----------->| | | | 3995 | Digit 1 | | | | 3996 |<-----------| | | | 3997 |Send Next Digit | | | 3998 | : | | | | 3999 | : | | | | 4000 |<-----------| | | | 4001 | End of Singaling | | | 4002 | |----------->| | | 4003 | |Notify OE:addr | | 4004 | | |----------->| | 4005 | | | IAM |--------------->| 4006 | |<-----------| | IAM | 4007 | |Notify Resp | |<---------------| 4008 | | |<-----------| CON | 4009 | | | CON | | 4010 | |<-----------| | | 4011 | |Modify Phy | | | 4012 |<-----------| | | | 4013 | Answer | | | | 4014 | |----------->| | | 4015 | |Modify Resp | | | 4016 | |<-----------| | | 4017 | | Add Phy | | | 4018 | | Add $ Local Unspecified | 4019 | |----------->| | | 4020 | |Add Phy Resp| | | 4021 | |Add Eph Resp Local Specified | 4022 | | |----------->| | 4023 | | | Add Phy | | 4024 | | | Add $ Local Unspecified | 4025 | | | Remote Specified | 4026 | | |<-----------| | 4027 | | |Add Phy Resp| | 4028 | | |Add Eph Resp local specified | 4029 | |<-----------| | | 4030 | |Modify Eph | | | 4031 | |----------->| | | 4032 | |Modify Resp | | | 4033 | |/-----------------------\| | 4034 | | RTP MEDIA | | 4035 | |\-----------------------/| | 4036 |----------->| | | | 4037 |Clear Forward | | | 4038 | |----------->| | | 4039 |<-----------|Notify OE:R2/clear | | 4040 |Clear Back | | | | 4041 | |<-----------| | | 4042 | |Notify Resp | | | 4043 | | |----------->| | 4044 | | | REL |--------------->| 4045 | | | | REL | 4046 | | | |<---------------| 4047 | | |<-----------| RLC | 4048 | | | RLC | | 4049 | |<-----------| | | 4050 | |Sub Phy | | | 4051 | |Sub Eph | | | 4052 | |----------->| | | 4053 | |Sub Phy Resp| | | 4054 | |Sub Eph Resp Statistics | | 4055 | | |----------->| | 4056 | | |Sub Phy | | 4057 | | |Sub Eph | | 4058 | | |<-----------| | 4059 | | |Sub Phy Resp| | 4060 | | |Sub Eph Resp Statistics | 4061 |____________|____________|____________|________________| 4063 The MGC generates a Modify command towards the R2 Trunking gateway with 4064 the seize event and an embedded seize acknowledgement signal. The 4065 digit map in this scenario is assumed to be provisioned in the MG 4066 (shown to be 2XXX which may not be true for practical R2 exchanges). 4067 The seize event has a embedded signal seizeack to be applied after 4068 detection of seize event. The embedded signal is accompanied by 4069 another embedded events namely the clear event to detect the clear 4070 forwards signal if generated from the R2 domain. 4072 Step 1 4073 MGC to R2TGW 4074 MEGACO/1 [216.33.33.61]: 27000 4075 Transaction = 1234 { 4076 Context = - { 4077 Modify = Trunk1/line1 { 4078 Events = 1111 {R2/sz Embed { signals {R2/sa}, Events=1112 4079 { R2/clear signals { R2/clear }, R2/address}} 4080 } 4081 } 4082 } 4083 The R2TGW after receiving the Modify command does the command processing 4084 and responds with Modify command response. 4086 Step 2 4087 R2TGW to MGC 4088 MEGACO/1 [209.110.59.34]: 25000 4089 Reply = 1234 { 4090 Context = - { 4091 Modify = Trunk1/line1 4092 } 4093 } 4095 In this example as mentioned earlier, the call is originated from a user 4096 connected to the R2 domain of PSTN. The R2 exchange that is connected to 4097 the R2 Trunking gateway generates the seize signal. The seize signal is 4098 identified by the R2TGW and seize event is 4099 notified to the MGC. The R2TGW meanwhile does the embedded descriptor 4100 processing for the seize event. The application of the seizeack and 4101 detection of clear event is activated on the specific circuit group. 4102 The Notify command is generated towards the MGC. 4104 Step 3 4105 R2TGW to MGC: 4106 MEGACO/1 [209.110.59.34]:25000 4107 Transaction = 2000 { 4108 Context = - { 4109 Notify = TermA {ObservedEvents =1111 { 4110 20010202T10000000:R2/sz}} 4111 } 4112 } 4114 the MGC responds the Notify command with the Notify response. 4116 Step 4 4117 MGC to R2TGW: 4118 MEGACO/1 [216.33.33.61]: 27000 4119 Reply = 2000 { 4120 Context = - {Notify = TermA} 4121 } 4122 The R2TGW collects the digits and reports the same to the MGC as 4123 parameters of the address event. The other observed event parameters 4124 like the source number, subscribe category, etc are also indicated to 4125 the MGC. 4127 Step 5 4128 R2TGW to MGC: 4129 MEGACO/1 [209.110.59.34]:25000 4130 Transaction = 2001 { 4131 Context = - { 4132 Notify = TermA {ObservedEvents =1112 { 4133 20010302T10000000:R2/address { di=2992, si=2804 , sc=1 } }} 4134 } 4135 } 4137 the MGC responds the Notify command with the Notify response. 4139 Step 6 4140 MGC to R2TGW: 4141 MEGACO/1 [216.33.33.61]: 27000 4142 Reply = 2001 { 4143 Context = - {Notify = TermA} 4144 } 4145 The MGC then instructs the Signaling gateway to initiate the necessary signaling towards the 4146 exchange to 4147 which the destination user is connected. In this example the MGC has to 4148 generates SS7 messages to the SS7 switch. The IAM message is sent with 4149 all the necessary address signaling information. We assume the called 4150 party to be an automatic answering terminal in this example. So the SS7 switch 4151 responds with the CON message. 4153 After receiving the CON message, the MGC sends a Modify command towards the R2 TGW to 4154 indicate that the answer signal needs to be applied to the termination 4156 Step 7 4157 MGC to R2TGW 4158 MEGACO/1 [216.33.33.61]: 27000 4159 Transaction = 1235 { 4160 Context = - { 4161 Modify = Trunk1/line1 4162 {signals{ R2/ans } } 4163 } 4164 } 4166 The R2trunking gateway responds to the Modify command. 4168 Step 8 4169 R2TGW to MGC: 4170 MEGACO/1 [209.110.59.34]: 25000 4171 Reply = 1235 { 4172 Context = - { 4173 Modify = Trunk1/line1 4174 } 4175 } 4177 The MGC after receiving the ANM message generates commands to both 4178 the Trunking gateways to add physical circuits and create ephemeral 4179 terminations. The MGC in its message to the R2TGW in its signal 4180 descriptor lists the answer signal to indicate that the call 4181 establishment is successful and the end user is free to receive 4182 the call. 4184 Step 9 4185 MGC to R2TGW 4186 MEGACO/1 [216.33.33.61]: 27000 4187 Transaction = 1236{ 4188 Context = $ { 4189 Add = Trunk1/line1 {Media { 4190 LocalControl {Mode = SendRecv}}, 4191 }, 4192 Add = $ {Media { 4193 LocalControl { 4194 Mode = Receiveonly, 4196 }, 4197 Local { 4198 v=0 4199 c=IN IP4 $ 4200 m=audio $ RTP/AVP 4 4202 } 4203 } 4204 } 4205 } 4206 } 4207 } 4209 After processing the ADD command the R2 Trunking gateway creates a new context with 4210 a context id of 1 in this example. The ephemeral termination is created and added to the same 4211 context as the physical termination. The ephemeral termination added 4212 in this example is EPHA. The local parameters are specified in the 4213 response. The IP address chosen for the media transport in this 4214 example is 209.110.59.33, and the port number specified 30000. 4216 Step 10 4217 R2TGW to MGC: 4218 MEGACO/1 [209.110.59.34]: 25000 4219 Reply = 1236{ 4220 Context = 1 { 4221 Add = Trunk1/line1, 4222 Add = EphA{ 4223 Media { 4224 Local { 4225 v=0 4226 o=- 2890844525 2890842816 IN IP4 209.110.59.34 4227 s=- 4228 t= 00 4229 c=IN IP4 209.110.59.33 4230 m=audio 30000 RTP/AVP 4 4231 } 4232 } ; RTP profile for G723 is 4 4233 } 4234 } 4235 } 4236 The MGC after receiving the response generates similar transaction 4237 with two ADD commands to the SS7TGW. The local SDP information 4238 specified by the R2TGW is used as remote SDP information for 4239 the SS7TGW. The MGC conveys this information in the Add command. 4241 Step 11 4242 MGC to SS7TGW 4243 MEGACO/1 [216.33.33.61]: 27000 4244 Transaction = 1237{ 4245 Context = $ { 4246 Add = Trunk2/line1 {Media { 4247 LocalControl {Mode = SendRecv}}, 4248 }, 4249 Add = $ {Media { 4250 LocalControl { 4251 Mode = Receiveonly, 4252 }, 4253 Local { 4254 v=0 4255 c=IN IP4 $ 4256 m=audio $ RTP/AVP 4 4258 } 4259 Remote{ 4260 v=0 4261 o=- 2890844525 2890842816 IN IP4 209.110.59.34 4262 s=- 4263 t= 00 4264 c=IN IP4 209.110.59.33 4265 m=audio 30000 RTP/AVP 4 4266 } 4267 } ; RTP profile for G723 is 4 4268 } 4269 } 4270 } 4272 The Trunking gateway creates a context with ContextId 2. It adds the 4273 physical termination Trunk2/line1 in that context. The ephemeral 4274 termination EPHB is created with the specified SDP information. The 4275 response from the MG specifies the local SDP information. 4277 Step 12 4278 SS7TGW to MGC: 4279 MEGACO/1 [207.176.47.89]: 26000 4280 Reply = 1237{ 4281 Context = 2 { 4282 Add = Trunk2/line1, 4283 Add = EphB{ 4284 Media { 4285 Local { 4286 v=0 4287 o=- 2890844525 2890842816 IN IP4 207.176.47.89 4288 s=- 4289 t= 00 4290 c=IN IP4 207.176.47.90 4291 m=audio 40000 RTP/AVP 4 4292 } 4293 } ; RTP profile for G723 is 4 4294 } 4295 } 4296 } 4297 The MGC after receiving the response generates a modify command to the 4298 R2TGW to inform the local SDP information of SS7TGW as the remote SDP for 4299 the R2TGW. 4301 Step 13 4302 MGC to R2TGW 4303 MEGACO/1 [216.33.33.61]: 27000 4304 Transaction = 1238{ 4305 Context = 1 { 4306 Modify = EphA 4307 {Media { 4308 LocalControl { 4309 Mode = SendRecv, 4310 }, 4311 Remote{ 4312 v=0 4313 o=- 2890844525 2890842816 IN IP4 207.176.47.89 4314 s=- 4315 t= 00 4316 c=IN IP4 207.176.47.90 4317 m=audio 40000 RTP/AVP 4 4318 } 4319 } 4320 } 4321 } 4322 } 4323 } 4325 The R2 Trunking gateway responds to the Modify command. 4327 Step 14 4328 R2TGW to MGC: 4329 MEGACO/1 [209.110.59.34]: 25000 4330 Reply = 1238{ 4331 Context = 1 { 4332 Modify = EphA 4333 } 4334 } 4335 The RTP media transfer can now take place. After completing the conversation the user connected to the R2 4336 exchange domain terminates the call. The clear forwards signal 4337 generated by the R2 exchange connected to the R2 TGW is detected and 4338 reported to the MGC as the clear event in the H.248.28 package. The clear 4339 back signal, which is part of the clear event, enables the R2TGW to 4340 generate the clear back signal. The clear event detection is 4341 reported to MGC as part of the Notify command. 4343 Step 15 4344 R2TGW to MGC: 4345 MEGACO/1 [209.110.59.34]:25000 4346 Transaction = 2002 { 4347 Context = 1 { 4348 Notify = TermA {ObservedEvents =1112 { 4349 20010402T10030000:R2/clear} 4350 } 4351 } 4352 } 4353 The MGC responds to the RGWs Notify message. 4355 Step 16 4356 MGC to R2TGW: 4357 MEGACO/1 [216.33.33.61]:27000 4358 Reply = 2003 { 4359 Context = 1 { 4360 Notify = TermA 4361 } 4362 } 4363 The MGC generates REL (Release) message towards the SS7 switch to initate call release. 4364 The SS7 switch responds to this message with the RLC(Release Complete) message. The MGC now 4365 generates commands to both the TGWs for subtracting the terminations 4366 from the contexts created. 4368 Step 17 4369 MGC to R2TGW: 4370 MEGACO/1 [216.33.33.61]: 27000 4371 Transaction = 1239{ 4372 Context = 1 { 4373 Subtract = Trunk1/line1{Audit{ }}, 4374 Subtract = EphA {Audit{Statistics}} 4375 } 4376 } 4377 The R2TGW responds to the subtract commands generated by MGC. 4379 Step 18 4380 R2TGW to MGC: 4381 MEGACO/1 [209.110.59.34]:25000 4382 Reply = 1239{ 4383 Context = 1 { 4384 Subtract = Trunk1/line1 4385 Subtract = EphA { 4386 Statistics { 4387 rtp/ps=987, ; packets sent 4388 nt/os=65432, ; octets sent 4389 rtp/pr=1234, ; packets received 4390 nt/or=56789, ; octets received 4391 rtp/pl=10, ; % packets lost 4392 rtp/jit=30, 4393 rtp/delay=30 ; average latency 4394 } 4395 } 4396 } 4397 } 4398 The MGC generates similar transaction with two Subtract command for 4399 subtracting both the physical and ephemeral terminations from the 4400 second Trunking gateway. 4402 Step 19 4403 MGC to SS7TGW: 4404 MEGACO/1 [216.33.33.61]: 27000 4405 Transaction = 1240 4406 Context = 2 { 4407 Subtract = Trunk2/line1{Audit{ }}, 4408 Subtract = EphB {Audit{Statistics}} 4409 } 4410 } 4411 The RGW responds to the subtract commands generated by MGC. 4413 Step 20 4414 SS7TGW to MGC: 4415 MEGACO/1 [207.176.47.89]:26000 4416 Reply = 1240 4417 Context = 2 { 4418 Subtract = Trunk2/line1 4419 Subtract = EphB { 4420 Statistics { 4421 rtp/ps=987, ; packets sent 4422 nt/os=65432, ; octets sent 4423 rtp/pr=1234, ; packets received 4424 nt/or=56789, ; octets received 4425 rtp/pl=10, ; % packets lost 4426 rtp/jit=30, 4427 rtp/delay=30 ; average latency 4428 } 4429 } 4430 } 4431 } 4433 2.9 Call between R1 trunk in TGW and SS7 trunk in TGW 4435 In the previous section we illustrated the Megaco messages between MGC 4436 and two Trunking gateways, one that perform CCS SS7 and the other that performs CAS 4437 R2 signaling. This section illustrates another similar scenario, but 4438 now the call is initiated by a user who is connected to a R1 exchange to 4439 the user connected to an exchange that can be reached through an CCS SS7 signaling cloud. Both the Trunking gateways 4440 are assumed to be controlled by the same Media Gateway Controller. 4441 The packages that are considered are H.248.25 package for R1, network package, 4442 MF tone detection package and RTP package. 4444 ______________________________________________________________________ 4445 | | | | 4446 R1Exchange | R1TGW | MGC | SS7TGW | SS7 Switch 4447 ____________|____________|___________|______________|_________________ 4448 | | | | | 4449 | |<-----------| | | 4450 | |Modify ED:sz{SD:sa ED:addr, cl} | 4451 | |----------->| | | 4452 | |Modify Resp | | | 4453 |----------->| | | | 4454 | Seize | | | | 4455 |<-----------| | | | 4456 |SeizeAck |----------->| | | 4457 | |Notify OE:sa| | | 4458 |----------->| | | | 4459 | KP | | | | 4460 |----------->| | | | 4461 | Digit1 | | | | 4462 | : | | | | 4463 | : | | | | 4464 |----------->| | | | 4465 | ST | | | | 4466 | |----------->| | | 4467 | |Notify OE:addr | | 4468 | | |----------->| | 4469 | | | IAM |--------------->| 4470 | |<-----------| | IAM | 4471 | |Notify Resp | |<---------------| 4472 | | |<-----------| ACM | 4473 | | | ACM | | 4474 | |<-----------| | | 4475 | |Modify Phy | | | 4476 |<-----------| | | | 4477 | Answer | | | | 4478 | |----------->| | | 4479 | |Modify Resp | | | 4480 | |<-----------| | | 4481 | | Add Phy | | | 4482 | | Add $ Local Unspecified | 4483 | |----------->| | | 4484 | |Add Phy Resp| | | 4485 | |Add Eph Resp Local Specified | 4486 | | |----------->| | 4487 | | | Add Phy | | 4488 | | | Add $ Local Unspecified | 4489 | | | Remote Specified | 4490 | | |<-----------| | 4491 | | |Add Phy Resp| | 4492 | | |Add Eph Resp Local Specified | 4493 | |<-----------| | | 4494 | |Modify Eph | | | 4495 | |----------->| | | 4496 | |Modify Resp | | | 4497 | |/-----------------------\| | 4498 | | RTP MEDIA | | 4499 | |\-----------------------/| | 4500 |----------->| | | | 4501 |Clear Forward | | | 4502 | |----------->| | | 4503 |<-----------|Notify OE:R1/clear | | 4504 |Clear Back | | | | 4505 | |<-----------| | | 4506 | |Notify Resp | | | 4507 | | |----------->| | 4508 | | | REL |--------------->| 4509 | | | | REL | 4510 | | | |<---------------| 4511 | | |<-----------| RLC | 4512 | | | RLC | | 4513 | |<-----------| | | 4514 | |Sub Phy | | | 4515 | |Sub Eph | | | 4516 | |----------->| | | 4517 | |Sub Phy Resp| | | 4518 | |Sub Eph Resp Statistics | | 4519 | | |----------->| | 4520 | | |Sub Phy | | 4521 | | |Sub Eph | | 4522 | | |<-----------| | 4523 | | |Sub Phy Resp| | 4524 | | |Sub Eph Resp Statistics | 4525 |____________|____________|____________|________________| 4527 The MGC generates a Modify command towards the R1 Trunking gateway 4528 with the seize event and an embedded seize acknowledgement signal. 4529 The digit map in this scenario is assumed to be provisioned in the MG 4530 (shown to be 2XXX which may not be true for practical R1 exchanges). 4531 The seize event has an embedded signal seizeack to be applied after 4532 detection of seize event. The embedded signal is accompanied by 4533 another embedded event descriptor with the clear event to detect the 4534 clear forward signal when generated from the R1 domain. 4536 Step 1 4537 MGC to R1TGW 4538 MEGACO/1 [216.33.33.61]: 27000 4539 Transaction = 1234 { 4540 Context = - { 4541 Modify = Trunk1/line1 { 4542 Events=1111{R1/sz Embed{ signals {R1/sd}, Events=1112 { mfd/ce{dmap}, 4543 R1/clearforward signals { R1/clearback }, R1/address}} 4544 } 4545 } 4546 } 4547 The R1TGW after receiving the Modify command does the command 4548 processing and responds with Modify command response. 4550 Step 2 4551 R1TGW to MGC 4552 MEGACO/1 [209.110.59.34]: 25000 4553 Reply = 1234 { 4554 Context = - { 4555 Modify = Trunk1/line1 4556 } 4557 } 4559 In this example as mentioned earlier, the call is originated from a 4560 user connected to the R1 domain of PSTN. The R1 exchange that is 4561 connected to the R1 Trunking gateway generates the seize signal. The 4562 seize signal is identified by the R1TGW and seize event is notified to the MGC. The R1TGW meanwhile does the 4563 embedded descriptor processing for the seize event and the application 4564 of the seizeack and detection of clear event is activated on the 4565 specific circuit group. The Notify command is generated 4566 towards the MGC. 4568 Step 3 4569 R1TGW to MGC: 4570 MEGACO/1 [209.110.59.34]:25000 4571 Transaction = 2000 { 4572 Context = - { 4573 Notify = Trunk1/line1 {ObservedEvents =1111 { 4574 20010202T10000000:R1/sz}} 4575 } 4576 } 4578 the MGC responds the Notify command with the Notify response. 4580 Step 4 4581 MGC to R1TGW: 4582 MEGACO/1 [216.33.33.61]: 27000 4583 Reply = 2000 { 4584 Context = - {Notify = Trunk1/line1} 4585 } 4586 The R1TGW collects the digits and reports the same to the MGC as 4587 parameters of the address event The digit completion event of the MF 4588 detection package is used here. 4590 Step 5 4591 R1TGW to MGC: 4592 MEGACO/1 [209.110.59.34]:25000 4593 Transaction = 2001 { 4594 Context = - { 4595 Notify = Trunk1/line1 {ObservedEvents =1112 { 4596 20010302T10000000:mfd/ce{ds=2992}} 4597 } 4598 } 4600 the MGC responds to the Notify command with a Notify response. 4602 Step 6 4603 MGC to R1TGW: 4604 MEGACO/1 [216.33.33.61]: 27000 4605 Reply = 2001 { 4606 Context = - {Notify = Trunk1/line1} 4607 } 4608 The MGC then instructs the Signaling Gateway to initiate the necessary signaling towards the exchange to 4609 which the destination user is connected. In this example the MGC has 4610 to instruct the Signaling Gateway to generate SS7 messages towards the SS7 switch. The IAM (Initial Address Message) is sent 4611 with all the necessary address signaling information. In this example 4612 assume that the peer SS7 switch sends back a CON (Connect) message 4613 after receiving the IAM message as we have assumed the called party 4614 to be an automatic answering terminal for simpliity. 4616 The MGC sends a Modify command towards the R1 TGW to indicate that the called party has 4617 gone offhook. The answer signal is sent in the Signals descriptor. 4619 Step 7 4620 MGC to R1TGW 4621 MEGACO/1 [216.33.33.61]: 27000 4622 Transaction = 1235 { 4623 Context = - { 4624 Modify = Trunk1/line1 4625 {signals{ R1/ans } } 4626 } 4627 } 4629 The R1 Trunking gateway responds to the Modify command. 4631 Step 8 4632 R1TGW to MGC: 4633 MEGACO/1 [209.110.59.34]: 25000 4634 Reply = 1235 { 4635 Context = - { 4636 Modify = Trunk1/line1 4637 } 4638 } 4640 After knowing that a CON message has been received the MGC generates commands towards both the 4641 trunking gateways to add physical circuits and create ephemeral 4642 terminations. The MGC in its message to the R1TGW lists the answer 4643 signal in the signal descriptor to indicate that the call 4644 establishment is successful and the end user is free to receive the 4645 call. 4647 Step 9 4648 MGC to R1GW 4649 MEGACO/1 [216.33.33.61]: 27000 4650 Transaction = 1236 { 4651 Context = $ { 4652 Add = Trunk1/line1 {Media { 4653 LocalControl {Mode = SendRecv}}, 4654 }, 4655 Add = $ {Media { 4656 LocalControl { 4657 Mode = Receiveonly, 4658 }, 4659 Local { 4660 v=0 4661 c=IN IP4 $ 4662 m=audio $ RTP/AVP 4 4664 } 4666 } 4667 } 4668 } 4669 } 4670 } 4672 After processing the ADD command the R1 Trunking gateway creates a new context with a context id 1 in 4673 this example. The ephemeral termination is created and added to the same 4674 context as the physical termination. The ephemeral termination added 4675 in this example is EPHA. The local parameters are specified in the 4676 response. The IP address chosen for the media transport in this 4677 example is 209.110.59.33, and the port number specified 30000. 4679 Step 10 4680 R1TGW to MGC: 4681 MEGACO/1 [209.110.59.34]: 25000 4682 Reply = 1236 { 4683 Context = 1 { 4684 Add = Trunk1/line1, 4685 Add = EphA{ 4686 Media { 4687 Local { 4688 v=0 4689 o=- 2890844525 2890842816 IN IP4 209.110.59.34 4690 s=- 4691 t= 00 4692 c=IN IP4 209.110.59.33 4693 m=audio 30000 RTP/AVP 4 4694 } 4695 } ; RTP profile for G723 is 4 4696 } 4697 } 4698 } 4699 After receving the response to the ADD command from the R1TGW, the MGC generates a similar transaction 4700 with two ADD commands towars the SS7TGW. The local SDP information 4701 specified in by the R1TGW is used as remote SDP information for 4702 SS7TGW. The MGC conveys this information in the Add command. 4704 Step 11 4705 MGC to SS7TGW 4706 MEGACO/1 [216.33.33.61]: 27000 4707 Transaction = 1237 { 4708 Context = $ { 4709 Add = Trunk2/line1 {Media { 4710 LocalControl {Mode = SendRecv}}, 4711 }, 4713 Add = $ {Media { 4714 LocalControl { 4715 Mode = Receiveonly, 4716 }, 4717 Local { 4718 v=0 4719 c=IN IP4 $ 4720 m=audio $ RTP/AVP 4 4722 } 4723 Remote{ 4724 v=0 4725 o=- 2890844525 2890842816 IN IP4 209.110.59.34 4726 s=- 4727 t= 00 4728 c=IN IP4 209.110.59.33 4729 m=audio 30000 RTP/AVP 4 4730 } 4731 } ; RTP profile for G723 is 4 4732 } 4733 } 4734 } 4736 The Trunking gateway creates a context with ContextId 2. It adds the 4737 physical termination Trunk2/line1 in that context. The ephemeral 4738 termination EPHB is created with the specified remote SDP information. The 4739 response from the MG specifies the local SDP information. 4741 Step 12 4742 SS7GW to MGC: 4743 MEGACO/1 [207.176.47.89]: 26000 4744 Reply = 1237 { 4745 Context = 2 { 4746 Add = Trunk2/line1, 4747 Add = EphB{ 4748 Media { 4749 Local { 4750 v=0 4751 o=- 2890844525 2890842816 IN IP4 207.176.47.89 4752 s=- 4753 t= 00 4754 c=IN IP4 207.176.47.90 4755 m=audio 40000 RTP/AVP 4 4756 } 4757 } ; RTP profile for G723 is 4 4758 } 4759 } 4760 } 4762 The MGC after receiving the response generates a modify command to the 4763 R1TGW to inform the local SDP information of SS7TGW as the remote SDP for 4764 the R1TGW. 4766 Step 13 4767 MGC to R1TGW 4768 MEGACO/1 [216.33.33.61]: 27000 4769 Transaction = 1238 { 4770 Context = 1 { 4771 Modify = EphA 4772 {Media { 4773 LocalControl { 4774 Mode = SendRecv, 4775 }, 4776 Remote{ 4777 v=0 4778 o=- 2890844525 2890842816 IN IP4 207.176.47.89 4779 s=- 4780 t= 00 4781 c=IN IP4 207.176.47.90 4782 m=audio 40000 RTP/AVP 4 4783 } 4784 } 4785 } 4786 } 4787 } 4788 } 4790 The R1 Trunking gateway responds to the Modify command with the 4791 following reply 4793 Step 14 4794 R1TGW to MGC: 4795 MEGACO/1 [207.176.47.89]: 26000 4796 Reply = 1238 { 4797 Context = 1 { 4798 Modify = EphA 4799 } 4800 } 4801 The RTP media transfer can now t 4802 ake place. We assume that the user 4803 connected through the R1 signaling domain terminates the call. The 4804 clear forwards signal generated by the R1 exchange connected to the 4805 R1 TGW is detected and is reported to the MGC in the Notify command 4806 as the clear event in the H.248.25 package. As part of the embedded event 4807 descriptor processing at the R1TGW a clear back signal is played 4808 towards the peer R1 exchange. 4810 Step 15: 4811 R1TGW to MGC: 4812 MEGACO/1 [209.110.59.34]:25000 4813 Transaction = 2002 { 4814 Context = 1 { 4815 Notify = TermA {ObservedEvents =1112 { 4816 20010402T10030000:R1/clear} 4817 } 4818 } 4819 } 4820 The MGC responds to the R1TGWs Notify message with the following reply. 4822 Step 16 4823 MGC to R1TGW: 4824 MEGACO/1 [216.33.33.61]:27000 4825 Reply= 2002 { 4826 Context = 1 { 4827 Notify = TermA 4828 } 4829 } 4831 The MGC instructs the Signaling Gateway to generate a REL (Release) 4832 message towards the peer SS7 switch on receipt of which the peer 4833 generates a RLC message. The MGC now generates commands to both the 4834 TGWs for subtracting the terminations from the contexts created. 4836 Step 17 4837 MGC to R1TGW: 4838 MEGACO/1 [216.33.33.61]: 27000 4839 Transaction = 1239 { 4840 Context = 1 { 4841 Subtract = Trunk1/line1{Audit{ }}, 4842 Subtract = EphA {Audit{Statistics}} 4843 } 4844 } 4845 The R2TGW responds to the subtract commands generated by MGC. 4847 Step 18 4848 R1TGW to MGC: 4849 MEGACO/1 [209.110.59.34]:25000 4850 Reply = 1239 { 4851 Context = 1 { 4852 Subtract = Trunk1/line1 4853 Subtract = EphA { 4854 Statistics { 4855 rtp/ps=987, ; packets sent 4856 nt/os=65432, ; octets sent 4857 rtp/pr=1234, ; packets received 4858 nt/or=56789, ; octets received 4859 rtp/pl=10, ; % packets lost 4860 rtp/jit=30, 4861 rtp/delay=30 ; average latency 4862 } 4863 } 4864 } 4865 } 4866 The MGC generates a similar transaction with two Subtract commands for 4867 subtracting both the physical and ephemeral terminations from the SS7TGW. 4869 Step 19 4870 MGC to SS7TGW: 4871 MEGACO/1 [216.33.33.61]: 27000 4872 Transaction = 1240 { 4873 Context = 2 { 4874 Subtract = Trunk2/line1{Audit{ }}, 4875 Subtract = EphB {Audit{Statistics}} 4876 } 4877 } 4878 The R1GW responds to the subtract commands generated by MGC. 4880 Step 20 4881 TGW to MGC: 4882 MEGACO/1 [207.176.47.89]:26000 4883 Reply = 1240 4884 Context = 2 { 4885 Subtract = Trunk2/line1 4886 Subtract = EphB { 4887 Statistics { 4888 rtp/ps=987, ; packets sent 4889 nt/os=65432, ; octets sent 4890 rtp/pr=1234, ; packets received 4891 nt/or=56789, ; octets received 4892 rtp/pl=10, ; % packets lost 4893 rtp/jit=30, 4894 rtp/delay=30 ; average latency 4895 } 4896 } 4897 } 4898 } 4900 2.10 Call between SS7 trunk in TGW and R1 trunk in TGW 4901 This section of the call flow illustrates the call between two 4902 Trunking gateways, one that performs R1 signaling and the other 4903 that performs the CCSSS7 signaling. In this example the user in the CCS SS7 signaling 4904 network originates the call. The destination user is connected to the 4905 PSTN network with R1 signaling. 4907 ______________________________________________________________________ 4908 | | | | 4909 SS7 Switch | SS7TGW | MGC | R1TGW | R1Exch 4910 ____________|____________|___________|______________|_________________ 4911 | | | | | 4912 |----------->| | | | 4913 | IAM | | | | 4914 | |---------->| | | 4915 | | IAM | | | 4916 | | |----------->| | 4917 | | |Modify Phy Seize | 4918 | | | |--------------->| 4919 | | | | Seize | 4920 | | |<-----------| | 4921 | | |Modify Resp | | 4922 | | | |<---------------| 4923 | | | | Wink | 4924 | | |<-----------| | 4925 | | |Notify OE:sa|--------------->| 4926 | | |----------->| KP,Digits,ST | 4927 | | |Notify Resp | | 4928 | |<----------| | | 4929 | | ACM | | | 4930 |<-----------| | | | 4931 | ACM | | | | 4932 | | | |<---------------| 4933 | | | | Answer | 4934 | | |<-----------| | 4935 | | | Notify OE:ans | 4936 | | |----------->| | 4937 | | |Notify Resp | | 4938 | |<----------| | | 4939 | | ANM | | | 4940 |<-----------| | | | 4941 | ANM | | | | 4942 | |<----------| | | 4943 | |Add Phy | | | 4944 | |Add $ Local (Unspecified) | 4945 | |---------->| | | 4946 | |Add Phy Resp | | 4947 | |Add Eph Resp | | 4948 | | |----------->| | 4949 | | |Add Phy | | 4950 | | |Add $ Local (Unspecified) | 4951 | | | Remote (Specified) | 4952 | | |<-----------| | 4953 | | |Add Phy Resp| | 4954 | | |Add Eph Resp| | 4955 | |<----------| | | 4956 | |Modify Eph | | | 4957 | |---------->| | | 4958 | |Modify Resp| | | 4959 | |/----------------------\| | 4960 | | RTP MEDIA | | 4961 | |\----------------------/| | 4962 |----------->| | | | 4963 | REL | | | | 4964 | |---------->| | | 4965 | | REL | | | 4966 | | |----------->| | 4967 | | |Modify Phy ED:R1/clear | 4968 | | | |--------------->| 4969 | | | | Clear Forward | 4970 | | |<-----------| | 4971 | | |Modify Resp | | 4972 | | | |<---------------| 4974 | | | | Clear Back | 4975 | | |<-----------| | 4976 | | | Notify OE:clear | 4977 | | |----------->| | 4978 | | | Notify Resp| | 4979 | |<----------| | | 4980 | | RLC | | | 4981 |<-----------| | | | 4982 | RLC | | | | 4983 | |<----------| | | 4984 | |Sub Phy | | | 4985 | |Sub Eph | | | 4986 | |---------->| | | 4987 | |Sub Phy Resp | | 4988 | |Sub Eph Resp Statistics | | 4989 | | |----------->| | 4990 | | |Sub Phy | | 4991 | | |Sub Eph | | 4992 | | |<-----------| | 4993 | | |Sub Phy Resp| | 4994 | | |Sub Eph Resp Statistics | 4995 |____________|___________|____________|________________| 4997 When the MGC, through the signaling gateway, receives the IAM it 4998 generates a Modify message towards the Trunking gateway that supports 4999 H.248.25 package. The signal descriptor has the seize signal and the event 5000 descriptor has the event seizeack. The seizeack event has an embeddeded 5001 signal "address". The Trunking gateway is instructed to seize a circuit 5002 and apply the address signals after the seize acknowledgement is 5003 received from the other R1 exchange. The calling party information 5004 can also be provided in the address signal. For simplicity it is 5005 omitted here. The embedded event of the seize acknowledgement event 5006 is the answer. This event has to be reported when the digits reach the 5007 other R1 exchange and there is answer from the terminating R1 exchange. 5008 The message from MGC to R1TGW is as follows. 5010 Step 1 5011 MGC to R1TGW 5012 MEGACO/1 [216.33.33.61]: 27000 5013 Transaction = 1234 { 5014 Context = - { 5015 Modify = Trunk1/line1 { 5016 Signals = { R1/sz} 5017 Events = 1111 {R1/sd Embed { signals {R1/address { ds = 2989} }, 5018 Events=1112 { R1/clear, R1/ans} 5019 } 5020 } 5021 } 5022 The R1TGW after receiving the Modify command does the command 5023 processing and responds with Modify command response. 5025 Step 2 5026 R1TGW to MGC 5027 MEGACO/1 [209.110.59.34]: 25000 5028 Reply = 1234 { 5029 Context = - { 5030 Modify = Trunk1/line1 5031 } 5032 } 5034 The R1 TGW applies seize signal on the specified circuit group and 5035 after receiving the acknowledgement from the peer R1 exchange 5036 updates the embedded events descriptor as the events descriptor. The 5037 R1TGW also generates a Notify command towards the MGC to indicate 5038 that the seize acknowledgement has been received. 5040 Step 3 5041 R1TGW to MGC: 5042 MEGACO/1 [209.110.59.34]:25000 5043 Transaction = 2000 { 5044 Context = - { 5045 Notify = Trunk1/line1{ObservedEvents =1111 { 5046 20010202T10000000:R1/sd}} 5048 } 5049 } 5051 the MGC responds the Notify command with the Notify response. 5053 Step 4 5054 MGC to R1TGW: 5055 MEGACO/1 [216.33.33.61]: 27000 5056 Reply = 2000 { 5057 Context = - {Notify = Trunk1/line1} 5058 } 5060 The MGC now instructs the Signaling Gateway to generate the ACM (address complete message) towards the SS7 switch 5061 that has generated the IAM message. The R1TGW, after receiving the 5062 answer event from the peer R1 exchange, generates message to notify 5063 this event. 5065 Step 5 5066 R1TGW to MGC: 5067 MEGACO/1 [209.110.59.34]:25000 5068 Transaction = 2001 { 5069 Context = - { 5070 Notify = Trunk1/line1{ObservedEvents =1112 { 5071 20010202T10000000:R1/ans}} 5072 } 5073 } 5075 the MGC responds the Notify command with the Notify response. 5077 Step 6 5078 MGC to R1TGW: 5079 MEGACO/1 [216.33.33.61]: 27000 5080 Reply = 2001 { 5081 Context = - {Notify = Trunk1/line1} 5082 } 5084 MGC instructs the Signaling Gateway to generate the ANM (Answer) message 5085 towards the peer SS7 switch. It also generates commands to add terminations into 5086 specific contexts. It generates a single transaction with two Add 5087 commands towards the R1TGW. One command 5088 is to add the physical circuit group Trunk1/line and the other for 5089 the ephemeral termination. The SDP information is underspecified that 5090 instructs the TGW to choose the underspecified parameters. 5092 Step 7 5093 MGC to R1TGW 5094 MEGACO/1 [216.33.33.61]: 27000 5095 Transaction = 1235{ 5096 Context = $ { 5097 Add = Trunk1/line1 {Media { 5098 LocalControl {Mode = SendRecv}}, 5099 }, 5100 Add = $ {Media { 5101 LocalControl { 5102 Mode = Receiveonly, 5103 }, 5104 Local { 5105 v=0 5106 c=IN IP4 $ 5107 m=audio $ RTP/AVP 4 5109 } 5110 } 5111 } 5112 } 5113 } 5114 } 5116 After processing the Add command the R1 Trunking creates a new context 5117 with a context id of 1 in this example. The ephemeral termination is created 5118 and added to the same context as the physical termination. The 5119 ephemeral termination added in this example is EPHA. The local 5120 parameters are specified in the response. The IP address chosen for 5121 the media transport in this example is 209.110.59.33, and the port 5122 number specified 30000. 5124 Step 8 5125 R1TGW to MGC: 5126 MEGACO/1 [209.110.59.34]: 25000 5127 Reply = 1235{ 5128 Context = 1 { 5129 Add = Trunk1/line1, 5130 Add = EphA{ 5131 Media { 5132 Local { 5133 v=0 5134 o=- 2890844525 2890842816 IN IP4 209.110.59.34 5135 s=- 5136 t= 00 5137 c=IN IP4 209.110.59.33 5138 m=audio 30000 RTP/AVP 4 5139 } 5140 } ; RTP profile for G723 is 4 5141 } 5142 } 5144 } 5145 After receiving the response to the ADD command from R1TGW, the MGC generates a similar transaction 5146 with two ADD commands towards the SS7TGW. The local SDP information 5147 specified by the R1TGW is used as remote SDP information for 5148 the SS7TGW. The MGC conveys this information in the ADD command. 5150 Step 9 5151 MGC to SS7TGW 5152 MEGACO/1 [216.33.33.61]: 27000 5153 Transaction = 1236{ 5154 Context = $ { 5155 Add = Trunk2/line1 {Media { 5156 LocalControl {Mode = SendRecv}}, 5157 }, 5158 Add = $ {Media { 5159 LocalControl { 5160 Mode = Receiveonly, 5161 }, 5162 Local { 5163 v=0 5164 c=IN IP4 $ 5165 m=audio $ RTP/AVP 4 5167 } 5168 Remote{ 5169 v=0 5170 o=- 2890844525 2890842816 IN IP4 209.110.59.34 5171 s=- 5172 t= 00 5173 c=IN IP4 209.110.59.33 5174 m=audio 30000 RTP/AVP 4 5175 } 5176 } ; RTP profile for G723 is 4 5177 } 5178 } 5179 } 5181 The SS7 trunking gateway creates a context with ContextId 2. It adds the 5182 physical termination Trunk2/line1 in that context. The ephemeral 5183 termination EPHB is created with the specified SDP information. The 5184 response from the MG specifies the local SDP information. 5186 Step 10 5187 SS7TGW to MGC: 5188 MEGACO/1 [207.176.47.89]: 26000 5189 Reply = 123 5190 6{ 5191 Context = 2 { 5192 Add = Trunk2/line1, 5193 Add = EphB{ 5194 Media { 5195 Local { 5196 v=0 5197 o=- 2890844525 2890842816 IN IP4 207.176.47.89 5198 s=- 5199 t= 00 5200 c=IN IP4 207.176.47.90 5201 m=audio 30000 RTP/AVP 4 5202 } 5203 } ; RTP profile for G723 is 4 5204 } 5205 } 5206 } 5207 The MGC after receiving the response generates a modify command to 5208 the R1TGW to inform the local SDP information of TGW as the remote SDP 5209 for the R1TGW. 5211 Step 11 5212 MGC to R1TGW 5213 MEGACO/1 [216.33.33.61]: 27000 5214 Transaction = 1237{ 5215 Context = 1 { 5216 Modify = EphA 5217 {Media { 5218 LocalControl { 5219 Mode = SendRecv, 5220 }, 5221 Remote{ 5222 v=0 5223 o=- 2890844525 2890842816 IN IP4 207.176.47.89 5224 s=- 5225 t= 00 5226 c=IN IP4 207.176.47.90 5227 m=audio 30000 RTP/AVP 4 5228 } 5229 } 5230 } 5231 } 5232 } 5233 } 5235 The R1 Trunking gateway responds to the Modify command. 5237 Step 12 5238 R1TGW to MGC: 5239 MEGACO/1 [209.110.59.34]: 25000 5240 Reply = 1237{ 5241 Context = 1 { 5242 Modify = EphA 5243 } 5244 } 5245 The RTP media flow is established and the two users connected to the 5246 SS7 trunk and R1 trunk can start the conversation. After the end of the conversation any 5247 of the user can disconnect the call and in this example the user connected 5248 to the SS7 domain releases the call. The SS7 switch generates a REL 5249 message towards the MGC and the Signaling gateway forwards the same 5250 to the MGC. The MGC initiates the tearing down of the 5251 call. This is done initially by generating a Modify command towards 5252 the R1 TGW to generate clear forward signal towards the R1 exchange. 5253 In the message the MGC sends a signal descriptor with clear signals 5254 and events descriptor with the clear in the event. The event in the 5255 events descriptor is for detecting the clear back signal generated from 5256 the R1 exchange. 5258 Step 13 5259 MGC to R1TGW: 5260 MEGACO/1 [216.33.33.61]: 27000 5261 Transaction = 1238{ 5262 Context = 1 { 5263 Context = Trunk1/line1{ 5264 signal { R1/clear}, 5265 Events = 1113{ R1/clear} 5266 } 5267 } 5269 The R1 TGW after receiving the commands does the signals and events 5270 descriptor processing and responds to the MGC with the Modify command 5271 response. 5273 Step 14 5274 R1TGW to MGC 5275 MEGACO/1 [209.110.59.34]: 25000 5276 Reply = 1238 { 5277 Context = 1 { 5278 Modify = Trunk1/line1 5279 } 5280 } 5282 Meanwhile the MGC generates the subtract message towards the 5283 originating SS7TGW to remove the terminations from the newly 5284 created context. 5286 Step 15 5287 MGC to SS7TGW: 5289 MEGACO/1 [216.33.33.61]: 27000 5290 Transaction = 1239 5291 Context = 2 { 5292 Subtract = Trunk2/line1{Audit{ }}, 5293 Subtract = EphB {Audit{Statistics}} 5294 } 5295 } 5296 The RGW responds to the subtract commands generated by MGC. 5298 Step 16 5299 SS7TGW to MGC: 5300 MEGACO/1 [207.176.47.89]:26000 5301 Reply = 1239 5302 Context = 2 { 5303 Subtract = Trunk2/line1 5304 Subtract = EphB { 5305 Statistics { 5306 rtp/ps=987, ; packets sent 5307 nt/os=65432, ; octets sent 5308 rtp/pr=1234, ; packets received 5309 nt/or=56789, ; octets received 5310 rtp/pl=10, ; % packets lost 5311 rtp/jit=30, 5312 rtp/delay=30 ; average latency 5313 } 5314 } 5315 } 5316 } 5317 The MGC, after receiving the response from the SS7TGW, instructs 5318 the Signaling Gateway to generate the RLC (Release Complete) message 5319 towards the peer SS7 switch. 5321 The R1 TGW after receiving the clear back signal from the peer 5322 R1 exchange detects it and generates a Notify command towards the MGC. 5324 Step 17 5325 R1GW to MGC: 5326 MEGACO/1 [209.110.59.34]:25000 5327 Transaction = 2002 { 5328 Context = - { 5329 Notify = TermA {ObservedEvents =1113 { 5330 20030202T10000000:R1/clear}} 5331 } 5332 } 5334 the MGC responds the Notify command with the Notify response. 5336 Step 18 5337 MGC to R1GW: 5338 MEGACO/1 [216.33.33.61]: 27000 5339 Reply = 2002 { 5340 Context = - {Notify = TermA} 5341 } 5342 MGC after receiving the notify command generates subtract command to 5343 remove both the physical termination and ephemeral termination. 5345 Step 19 5346 MGC to R1TGW: 5347 MEGACO/1 [216.33.33.61]: 27000 5348 Transaction = 1240{ 5349 Context = 1 { 5350 Subtract = Trunk1/line1{Audit{ }}, 5351 Subtract = EphA {Audit{Statistics}} 5352 } 5353 } 5354 The R1TGW responds to the subtract commands generated by MGC. 5356 Step 20 5357 R1TGW to MGC: 5358 MEGACO/1 [209.110.59.34]:25000 5359 Reply = 1240{ 5360 Context = 1 { 5361 Subtract = Trunk1/line1 5362 Subtract = EphA { 5363 Statistics { 5364 rtp/ps=987, ; packets sent 5365 nt/os=65432, ; octets sent 5366 rtp/pr=1234, ; packets received 5367 nt/or=56789, ; octets received 5368 rtp/pl=10, ; % packets lost 5369 rtp/jit=30, 5370 rtp/delay=30 ; average latency 5371 } 5372 } 5373 } 5374 } 5375 Now the termination is free to take part in other calls. 5377 2.11 Call between ISDN trunk in TGW and SS7 trunk in TGW 5379 This section illustrates the Megaco message flow between MGC and two 5380 Trunking media gateways SS7 and ISDN signaling respectively. In this 5381 example we assume that an ISDN user initiates that call. 5383 ______________________________________________________________________ 5384 | | | | 5385 ISDNSwitch | ISDNTGW/SG | MGC | SS7TGW/SG | SS7Switch 5386 ____________|____________|___________|______________|_________________ 5387 | | | | | 5388 |----------->| | | | 5389 | Setup |---------->| | | 5390 | | Setup | | | 5391 | | |----------->| | 5392 | | | IAM |--------------->| 5393 | | | | IAM | 5394 | | | |<---------------| 5395 | | |<-----------| ACM (User free)| 5396 | | | ACM (User free) | 5397 | |<----------| | | 5398 |<-----------| Alerting| | | 5399 | Alerting | | |<---------------| 5400 | | |<-----------| ANM | 5401 | |<----------| ANM | | 5402 |<-----------| Connect | | | 5403 | Connect |<----------| | | 5404 | |Add Phy | | | 5405 | |Add $ Local unspecfied | 5406 | |---------->| | | 5407 | |Add Phy Resp | | 5408 | |Add Eph Resp Local Specified | 5409 | | |----------->| | 5410 | | |Add Phy | | 5411 | | |Add $ Local Unspecified | 5412 | 5413 | | Remote Specified | 5414 | | |<-----------| | 5415 | | |Add Phy Resp| | 5416 | | |Add Eph Resp Local Specified| 5417 | |<----------| | | 5418 | |Modify EPh Remote Specified | 5419 | |---------->| | | 5420 | |Modify Eph Resp | | 5421 | |/----------------------\| | 5422 | | RTP MEDIA | | 5423 | |\----------------------/| | 5424 |----------->| | | | 5425 | Disconnect |---------->| | | 5426 | | Disconnect|----------->| | 5427 | | | REL |--------------->| 5428 | | | | REL | 5429 | | | |<---------------| 5430 | | |<-----------| RLC | 5431 | | | RLC | | 5432 | | |----------->| | 5433 | | |Sub Phy | | 5434 | | |Sub Eph | | 5435 | |<----------| | | 5436 | | Release | | | 5437 |<-----------| |<-----------| | 5438 | Release | |Sub Phy Resp| | 5439 | | |Sub Eph Resp Statistics | 5440 |----------->| | | | 5441 | Release Complete | | | 5442 | |---------->| | | 5443 | |Release Complete | | 5444 | |<----------| | | 5445 | |Sub Phy | | | 5446 | |Sub Eph | | | 5447 | |---------->| | | 5448 | |Sub Phy Resp | | 5449 | |Sub Eph Resp Statistics | | 5450 |____________|___________|____________|________________| 5452 The initial message sent by the ISDN switch is the Setup message. The 5453 setup message has all the address information. The MGC after receiving 5454 the Setup message from the Signaling gateway generates the IAM message 5455 towards the SS7 switch through the Signaling gateway. After receiving 5456 the ACM address complete message from the SS7 switch the MGC 5457 generates Alerting message towards the ISDN switch. The MGC, after 5458 receiving the ANM message, generates Connect message towards the 5459 ISDN switch. The MGC now adds terminations in both the 5460 Trunking gateways. 5462 Step 1 5463 MGC to ISDNTGW 5464 MEGACO/1 [216.33.33.61]: 27000 5465 Transaction = 1234{ 5466 Context = $ { 5467 Add = Trunk1/line1 {Media { 5468 LocalControl {Mode = SendRecv}}, 5469 }, 5470 Add = $ {Media { 5471 LocalControl { 5472 Mode = Receiveonly, 5473 }, 5474 Local { 5475 v=0 5476 c=IN IP4 $ 5477 m=audio $ RTP/AVP 4 5478 } 5479 } 5480 } 5481 } 5482 } 5483 } 5485 After receiving the ADD command the ISDN Trunking gateway creates 5486 a new context with context id 1 in this example. The ephemeral termination is 5487 created and added to the same context as the physical termination. 5488 The ephemeral termination added in this example is EPHA. The local 5489 SDP parameters are specified in the response. The IP address chosen for 5490 the media transport in this example is 207.176.47.90, and the 5491 port number specified 30000. 5493 Step 2 5494 ISDNTGW to MGC: 5495 MEGACO/1 [207.176.47.89]: 25000 5496 Reply = 1234{ 5497 Context = 1 { 5498 Add = Trunk1/line1, 5499 Add = EphA{ 5500 Media { 5501 Local { 5502 v=0 5503 o=- 2890844525 2890842816 IN IP4 207.176.47.89 5504 s=- 5505 t= 00 5506 c=IN IP4 207.176.47.90 5507 m=audio 30000 RTP/AVP 4 5508 } 5509 } ; RTP profile for G723 is 4 5510 } 5511 } 5512 } 5513 After receiving the response to the ADD command from the ISDN TGW the 5514 MGC generates a similar transaction with two ADD commands towards the 5515 SS7TGW. The local SDP information specified by the ISDNTGW is used as 5516 remote SDP information for the SS7TGW. The MGC conveys this information 5517 in the Add command. 5519 Step 3 5520 MGC to SS7TGW 5521 MEGACO/1 [216.33.33.61]: 27000 5522 Transaction = 1235{ 5523 Context = $ { 5524 Add = Trunk2/line1 {Media { 5525 LocalControl {Mode = SendRecv}}, 5527 }, 5528 Add = $ {Media { 5529 LocalControl { 5530 Mode = Receiveonly, 5531 }, 5532 Local { 5533 v=0 5534 c=IN IP4 $ 5535 m=audio $ RTP/AVP 4 5537 } 5538 Remote{ 5539 v=0 5540 o=- 2890844525 2890842816 IN IP4 207.176.47.89 5541 s=- 5542 t= 00 5543 c=IN IP4 207.176.47.90 5544 m=audio 30000 RTP/AVP 4 5545 } 5546 } ; RTP profile for G723 is 4 5547 } 5548 } 5549 } 5551 The Trunking gateway creates a context with ContextId 2. It adds the 5552 physical termination Trunk2/line1 in that context. The ephemeral 5553 termination EPHB is created with the specified SDP information. The 5554 response from the MG specifies the local SDP information. 5556 Step 4 5557 SS7TGW to MGC: 5558 MEGACO/1 [207.176.44.44]: 26000 5559 Reply = 1235{ 5560 Context = 2 { 5561 Add = Trunk2/line1, 5562 Add = EphB{ 5563 Media { 5564 Local { 5565 v=0 5566 o=- 2890844525 2890842816 IN IP4 207.176.44.44 5567 s=- 5568 t= 00 5569 c=IN IP4 207.176.44.45 5570 m=audio 30000 RTP/AVP 4 5571 } 5572 } ; RTP profile for G723 is 4 5573 } 5574 } 5576 } 5577 The MGC, after receiving the response, generates a modify command to the 5578 ISDNTGW to inform the local SDP information of SS7TGW as the remote SDP 5579 for the ISDNTGW. 5581 Step 5 5582 MGC to ISDNTGW 5583 MEGACO/1 [216.33.33.61]: 27000 5584 Transaction = 1236{ 5585 Context = 1 { 5586 Modify = EphA 5587 {Media { 5588 LocalControl { 5589 Mode = SendRecv, 5590 }, 5591 Remote{ 5592 v=0 5593 o=- 2890844525 2890842816 IN IP4 207.176.44.44 5594 s=- 5595 t= 00 5596 c=IN IP4 207.176.44.45 5597 m=audio 30000 RTP/AVP 4 5598 } 5599 } 5600 } 5601 } 5602 } 5603 } 5605 The ISDN Trunking gateway responds to the Modify command. 5607 Step 6 5608 ISDNTGW to MGC: 5609 MEGACO/1 [207.176.47.89]: 26000 5610 Reply = 1236{ 5611 Context = 1 { 5612 Modify = EphA 5613 } 5614 } 5615 The RTP flow is now established and the connected parties can now 5616 start the conversation. After completing the conversation the call 5617 can be terminated either by the ISDN user or by the user connected 5618 to the SS7 domain. In this example we assume that the ISDN user 5619 terminates the call. The ISDN switch generates Disconnect message 5620 towards the MGC through Signaling gateway. The MGC generates Release 5621 message towards the SS7 switch. The MGC also generates messages to 5622 subtract termination from contexts in both the Trunking gateways. 5624 Madhubabu, et al. Informational - 5625 Step 7 5626 MGC to ISDNTGW: 5627 MEGACO/1 [216.33.33.61]: 27000 5628 Transaction = 1237{ 5629 Context = 1 { 5630 Subtract = Trunk1/line1{Audit{ }}, 5631 Subtract = EphA {Audit{Statistics}} 5632 } 5633 } 5634 The ISDNTGW responds to the subtract commands generated by MGC. 5636 Step 8 5637 ISDNTGW to MGC: 5638 MEGACO/1 [209.110.59.34]:25000 5639 Reply = 1237{ 5640 Context = 1 { 5641 Subtract = Trunk1/line1 5642 Subtract = EphA { 5643 Statistics { 5644 rtp/ps=987, ; packets sent 5645 nt/os=65432, ; octets sent 5646 rtp/pr=1234, ; packets received 5647 nt/or=56789, ; octets received 5648 rtp/pl=10, ; % packets lost 5649 rtp/jit=30, 5650 rtp/delay=30 ; average latency 5651 } 5652 } 5653 } 5654 } 5656 The MGC generates similar transaction with two commands towards the 5657 SS7TGW that terminates SS7 media trunks. 5659 Step 9 5660 MGC to SS7TGW: 5661 MEGACO/1 [216.33.33.61]: 27000 5662 Transaction = 1238 5663 Context = 2 { 5664 Subtract = Trunk2/line1{Audit{ }}, 5665 Subtract = EphB {Audit{Statistics}} 5666 } 5667 } 5668 The SS7TGW responds to the subtract commands generated by MGC. 5670 Step 10 5671 TGW2 to MGC: 5672 MEGACO/1 [209.110.44.44]:26000 5673 Reply = 1238 5674 Context = 2 { 5675 Subtract = Trunk2/line1 5676 Subtract = EphB { 5677 Statistics { 5678 rtp/ps=987, ; packets sent 5679 nt/os=65432, ; octets sent 5680 rtp/pr=1234, ; packets received 5681 nt/or=56789, ; octets received 5682 rtp/pl=10, ; % packets lost 5683 rtp/jit=30, 5684 rtp/delay=30 ; average latency 5685 } 5686 } 5687 } 5688 } 5690 2.12 Continuity test from TGW 5692 In this section we will illustrate the usage of Megaco commands for 5693 performing continuity tests. The basic continuity package as defined 5694 in the protocol is used here. The procedures specified in the package 5695 are illustrated. There are two cases in the continuity test. One in 5696 which the MGC generates Megaco commands towards MG to initiate an 5697 continuity test and the second one in which the command from MGC 5698 enables the gateway to return any continuity test originated from 5699 switched circuit network. In both the scenarios the MG responds to the 5700 messages from the MGC. But how the MGC communicates with other MGCs or 5701 Switches is outside the scope of this draft. 5703 Case (a) 5705 __________________________________________________________________ 5706 | 5707 MG | MGC 5708 _______________________________|___________________________________ 5709 | | 5710 |<----------------------------------| 5711 | Modify TermA SD:ct/ct ED:ct/cmp state=test 5712 |---------------------------------->| 5713 | Modify TermA Resp | 5714 <------------| | 5715 Continuity Signal | 5716 | | 5717 ------------>| | 5718 Continuity Signal Resp | 5719 |---------------------------------->| 5720 | Notify TermA OE:ct/cmp {resp=success} 5721 |<----------------------------------| 5722 | Notify TermA Resp | 5723 _____________|___________________________________|__________________ 5725 The case of originating the Continuity test by the Trunking gateway is 5726 considered in this section. The MGC intends to check the continuity 5727 of a specified circuit group line1 of the trunk Trunk1 in the Trunking 5728 gateway. The MGC generates a modify command with the termination 5729 state set to "test". The event descriptor specifies the "cmp" 5730 completion event of the continuity package. The Signal descriptor 5731 lists the "ct" continuity test signal. 5733 Step 1 5734 MGC to TGW: 5735 MEGACO/1 [216.33.33.61]: 27000 5736 Transaction = 1234 { 5737 Context = '-' { 5738 Modify = Trunk1/line1 {Media { 5739 TerminationState {ServiceState = test}} 5740 Signals = { ct/ct } 5741 Events = 1111 { ct/cmp } 5742 } 5743 } 5744 } 5745 The TGW after receiving the Modify command for termination Trunk1/line1 5746 in Null context, updates the termination state. The event descriptor 5747 is updated in the Trunking gateway. The signal "ct" is applied on the 5748 specified termination. The Trunking gateway now starts detecting 5749 any tones/signals on the line on which the continuity test signal was 5750 applied. The response for the message generated by MGC is sent back. 5752 Step 2 5753 TGW to MGC: 5754 MEGACO/1 [207.176.47.89]: 26000 5755 Reply = 1234 { 5756 Context = '-' { 5757 Modify = Trunk1/line1 5758 } 5759 } 5761 The Trunking gateway starts waiting to detect any return tone/signal. The frequency 5762 of the tone is assumed to be provisioned at the TGW. As soon as the 5763 response is received from the other side of the trunk, the Trunking 5764 gateway reports the same to the MGC in the form of event detection. 5765 The event "cmp" in the event descriptor is used to notify the 5766 observed activity on the termination. The parameter value for the 5767 response parameter indicates the result of the continuity test 5768 performed. 5770 Step 3 5771 TGW to MGC: 5772 MEGACO/1 [207.176.47.89]: 26000 5773 Transaction = 2000 { 5774 Context = '-' { 5775 Notify = Trunk1/line1 {ObservedEvents =1111 { 5776 20010202T10000000: ct/cmp { res=success}} 5777 } 5778 } 5779 The MGC after receiving the Notify message responds to the TGW with 5780 the following response. 5782 Step 4 5783 MGC to TGW: 5784 MEGACO/1 [216.33.33.61]: 27000 5785 Reply = 2000 { 5786 Context = - {Notify = Trunk1/line1} 5787 } 5789 Case (b) 5790 In the previous continuity test scenario we saw the Megaco messages 5791 exchanged between MG and MGC when the MGC initiated the continuity 5792 test. In some scenarios the MG should respond to the continuity test 5793 originated from the PSTN switches. In this section we will consider 5794 such a scenario. 5796 __________________________________________________________________ 5797 | 5798 MG | MGC 5799 _______________________________|___________________________________ 5800 | | 5801 |<----------------------------------| 5802 | Modify TermA SD:ct/rsp | 5803 |---------------------------------->| 5804 | Modify TermA Resp | 5805 ------------>| | 5806 Continuity Signal | 5807 | | 5808 <------------| | 5809 Continuity Signal Resp | 5810 _____________|___________________________________|__________________ 5811 The continuity package signal "rsp" is used for this purpose. The 5812 signal duration and frequency are provisioned at the TGW. When the 5813 MGC is requested by a PSTN switch to respond for the continuity 5814 test, it generates a Modify command with the "rsp" signal in the 5815 signal descriptor. The termination state is set to "test". 5817 Step 1 5818 MGC to TGW: 5819 MEGACO/1 [216.33.33.61]: 27000 5820 Transactio 5821 n = 1234 { 5822 Context = '-' { 5823 Modify = Trunk1/line1 {Media { 5824 TerminationState {ServiceState = test} 5825 LocalControl { mode = loopback} } 5826 Signals = { ct/rsp } 5827 } 5828 } 5829 } 5830 There can be two possible cases for responding to the continuity test 5831 originated from the PSTN network. In the first case the Trunking Gateway 5832 generates a signal whose frequency is different from the frequency of the 5833 received signal and in the second case it loops back the received signal 5834 to the switch that originated it. In this example we assume the case of 5835 Loopback. The mode of the termination is also set to loopback to facilitate 5836 this. The Trunking gateway, after receiving the signal, loops back the same 5837 signal. The Trunking gateway also responds with the transaction 5838 response message towards the MGC. 5840 Step 2 5841 TGW to MGC: 5842 MEGACO/1 [207.176.47.89]: 26000 5843 Reply = 1234 { 5844 Context = '-' { 5845 Modify = Trunk1/line1 5846 } 5847 } 5848 Once the test is complete the MGC is intimated about the success or 5849 failure of the continuity test by the switch that originated the 5850 continuity test. 5852 2.13 Call from residential gateway to H.323 Terminal. 5854 In This section we illustrate a call between a Residential gateway user 5855 and to an endpoint in the H.323 domain. We assume that the call is 5856 initiated from the user of the Residential gateway and after dialing 5857 the digits the MGC does necessary mapping of the number to identify 5858 that the called number belongs to the H.323 network. 5860 _________________________________________________________________________ 5861 | | | | 5862 RGW | MGC | GK | H.323EP | 5863 _______________|_________________|__________________|__________________|_ 5864 | | | | 5865 |<--------------| | | 5866 | Modify | | | 5867 ------>| | | | 5868 OffHook|-------------->| | | 5869 <------| Modify Resp | | | 5870 DialTone | | | 5871 |-------------->| | | 5872 | Notify OffHook | | 5873 |<--------------| | | 5874 | Notify Resp | | | 5875 ------>| | | | 5876 Digits |-------------->| | | 5877 | Notify Digits| | | 5878 |<--------------| | | 5879 | Notify Resp | | | 5880 | |------------------>| | 5881 | | ARQ | | 5882 | |<------------------| | 5883 | | ACF | | 5884 | |------------------------------------>| 5885 | | Setup | 5886 | | |<----------------| 5887 | | | ARQ | 5888 | | |---------------->| 5889 | | | ACF | 5890 | |<------------------------------------| 5891 | | Alerting | 5892 |<--------------| | | 5893 |Add Phy | | | 5894 |Add $ Local Unspecified | | 5895 <------| | | | 5896 RingBack tone | | | 5897 |-------------->| | | 5898 |Add Phy Resp | | | 5899 |Add Eph Resp Local Specified | | 5900 | |<------------------------------------| 5901 | | Connect | 5902 | |<----------------------------------->| 5903 | | TCS | 5904 | |<----------------------------------->| 5905 | | MSD | 5906 | |<----------------------------------->| 5907 | | OLC (forward Logcial ch)RGW rtp/rtcp| 5908 | |<----------------------------------->| 5909 | | OLC (Rev Logical Ch) H.323 rtp/rtcp | 5910 |<--------------| | | 5911 | Modify Eph Remote Specified | | 5912 |-------------->| | | 5913 |Modify Resp | | | 5914 |/---------------------------------------------------\| 5915 | RTP Media | 5916 |\---------------------------------------------------/| 5917 | |<----------------------------------->| 5918 | | CLC SessionId = 1 | 5919 | |<----------------------------------->| 5920 |<--------------| | | 5921 <------| Modify SD:cg/bt | | 5922 Busy Tone |<----------------------------------->| 5923 | | CLC SessionId = 2 | 5924 |-------------->| | | 5925 | Modify Resp | | | 5926 | |<------------------------------------| 5927 | | Release Complete | 5928 | |------------------>| | 5929 | | DRQ |<----------------| 5930 |<--------------| | DRQ | 5931 |Sub Phy |<------------------|---------------->| 5932 |Sub Eph Stats | DCF | DCF | 5933 _______|_______________|___________________|_________________|_______ 5935 The MGC generates modify command towards the residential gateway to 5936 check for offhook event on Termination TermA. In this message the event 5937 offhook has an embedded signal descriptor and embedded event 5938 descriptor. The embedded signal descriptor is sent for application 5939 of dial tone immediately after the detection of the offhook event 5940 and the event descriptor then will be updated with the onhook and the 5941 digit map completion event. The Digit map is also defined in the 5942 digit map descriptor. 5944 Step 1 5945 MGC to RGW: 5946 MEGACO/1 [216.33.33.61]: 27000 5947 Transaction = 1234 { 5948 Context = - { 5949 Modify = TermA { 5950 Media { 5951 LocalControl { 5952 Mode = ReceiveOnly} 5953 }, 5954 DigitMap= Dmap1 {(2XXX)} 5955 Events = 1111 {al/of Embed {signals {cg/dt}, Events=1112 { al/on}, 5956 {dd/ce {Dmap1}}} 5957 } 5958 } 5959 } 5961 The MG after receiving the MGC's message responds to it. 5963 Step 2 5964 RGW to MGC: 5965 MEGACO/1 [209.110.59.34]: 25000 5966 Reply = 1234 { 5967 Context = - {Modify = TermA} 5968 } 5970 When the user A goes offhook RGW detects the offhook event and as it 5971 is listed in the event descriptor reports the event detected using 5972 Notify command. 5974 Step 3 5975 RGW to MGC: 5976 MEGACO/1 [209.110.59.34]: 25000 5977 Transaction = 2000 { 5978 Context = - { 5979 Notify = TermA {ObservedEvents =1111 { 5980 20010202T10000000:al/of}} 5981 } 5982 } 5983 The MGC responds with the Notify response. 5985 Step 4 5986 MGC to RGW: 5987 MEGACO/1 [216.33.33.61]: 27000 5988 Reply = 2000 { 5989 Context = - {Notify = TermA} 5990 } 5992 The digit map is active on the termination TermA. When the user dials 5993 the digits the they are reported to MGC through Notify command. 5995 Step 5 5996 RGW to MGC: 5998 MEGACO/1 [209.110.59.34]: 25000 5999 Transaction = 2001 { 6000 Context = - { 6001 Notify = TermA {ObservedEvents =1112 { 6002 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 6003 } 6004 } 6006 MGC after receiving the Notify command responds back with the Notify response. 6008 Step 6 6009 MGC to RGW: 6010 MEGACO/1 [216.33.33.61]: 27000 6011 Reply = 2001 { 6012 Context = - {Notify = TermA} 6013 } 6015 The MGC analyses the digits sent by the Residential Gateway. The 6016 routing functionality in MGC indicates that the dialed 6017 digits belong to the user in H.323 network. The MGC acts as a H.323 6018 Terminal towards H.323 network and generates the signaling towards 6019 the destined Called party. The MGC initially generates an admission 6020 request towards the Gatekeeper. The Gatekeeper acknowledges the 6021 admission request message by generating the Admission confirmation 6022 message ACF. Assuming that the GK used directed-routed call model, 6023 the Gatekeeper provides the transport address information of the 6024 destination user. The MGC then initiates the H.225 signaling by 6025 generating the SETUP message towards the H.323 endpoint. The H.323 6026 Endpoint, after receiving the Setup message from the MGC, initiates the 6027 Admission request towards the Gatekeeper. After 6028 receiving the Admission confirmation message from the Gatekeeper, it 6029 generates the Alerting message towards the MGC. The MGC after 6030 receiving the ALERT message from the H.323 Endpoint generates a 6031 Add command to the Residential gateway to apply ring back tone to the 6032 given termination. In the Add command the MGC requests the creation 6033 of ephemeral termination and under specifies the Local SDP 6034 information. The mode of the termination is set to receive only. 6036 Step 7 6037 MGC to RGW: 6038 MEGACO/1 [216.33.33.61]: 27000 6039 Transaction = 1235 { 6040 Context = $ { 6041 Add = TermA { 6042 Signals { cg/ rt } 6043 Media { 6044 { 6045 LocalControl { 6046 Mode = sendrecv, 6047 }, 6048 } 6049 Add = $ { 6050 Media { 6051 { 6052 LocalControl { 6053 Mode = sendrecv, 6054 }, 6055 Local { 6056 v=0 6057 c=IN IP4 $ 6058 m=audio $ RTP/AVP 4 6059 } 6060 } 6061 } 6062 } 6063 } 6065 MG after creating the context adds the physical termination TermA. In 6066 this case MG creates a context with ContextId 1. The ephemeral 6067 termination EphA is created and added to the context 1. The MG 6068 reserves resources for the local SDP information. In this case the 6069 IP address allocated is 209.110.59.33 and the port number used is 6070 30000. The MG responds to the Add command with this information in 6071 the response to MGC. 6073 Step 8 6074 RGW to MGC: 6075 MEGACO/1 [209.110.59.34]: 25000 6076 Reply = 1235 { 6077 Context = 1 { 6078 Add = TermA, 6079 Add=EphA{ 6080 Media { 6081 Local { 6082 v=0 6083 o=- 2890844525 2890842816 IN IP4 209.110.59.34 6084 s=- 6085 t= 00 6086 c=IN IP4 209.110.59.33 6087 m=audio 30000 RTP/AVP 4 6088 a=recvonly 6089 } ; RTP profile for G.723 is 4 6090 } 6091 } 6092 } 6093 } 6095 } 6096 The H.323 Endpoint generates the CONNECT message after the called 6097 party goes offhook. We assume that the H.245 information is passed in 6098 Connect message. The Terminal Capability set and the Master slave 6099 determination occurs between the MGC and the H.323 Endpoint. The 6100 Open Logical channel messages (OLCs) indicate the session and media 6101 related parameters. This enables the MGC to inform and receive the 6102 SDP information of both the users. By the end of this OLC message exchange process the MGC 6103 is aware of the SDP information of the H.323 Endpoint. The MGC now 6104 generates Modify message towards the MG, with the Remote SDP 6105 information for the ephemeral termination EphA. 6107 Step 9: 6108 MGC to RGW: 6109 MEGACO/1 [216.33.33.61]: 27000 6110 Transaction = 1236 { 6111 Context = 1 { 6112 Modify = TermA { 6113 Signals { } ; to turn off ringback tone 6114 Events = 1235 {al/on}, 6115 Media { 6116 LocalControl { 6117 Mode = SendRecv, 6118 } 6119 } 6120 } 6121 Modify = EphA{ 6122 Media { 6123 LocalControl { 6124 Mode = SendRecv, 6125 } 6126 Remote { 6127 v=0 6128 o=- 2890844525 2890842816 IN IP4 209.110.59.34 6129 s=- 6130 t= 00 6131 c=IN IP4 209.110.59.33 6132 m=audio 40000 RTP/AVP 4 6133 } ; RTP profile for G.723 is 4 6134 } 6135 } 6136 } 6138 The RGW responds to the request from MGC. 6140 Step 10 6141 RGW to MGC: 6142 MEGACO/1 [207.176.47.89]: 26000 6143 Reply = 1236 { 6144 Context = 1 {Modify = TermA , Modify = EphA} 6145 } 6147 Now RTP media flow takes place. In the example we assume that the 6148 H.323 goes onhook to terminate the call. The MGC initiates the tearing 6149 down of the Call by closing the logical channels that were earlier 6150 created for exchanging the H.245 information. The MGC after receiving 6151 the DISCONNECT message generates a Modify message towards the 6152 Residential gateway user for applying the busy tone and for making 6153 the mode of the two terminations to receive only. 6155 Step 11 6156 MGC to RGW: 6157 MEGACO/1 [216.33.33.61]: 27000 6158 Transaction = 1237 { 6159 Context = 1 { 6160 Modify = TermA { 6161 Signals {cg/bt} 6162 Media { 6163 LocalControl { 6164 Mode = recvonly} 6165 } 6166 }, 6167 Modify = EphA { 6168 Media { 6169 LocalControl { 6170 Mode = recvonly} 6171 } 6172 } 6173 } 6174 } 6175 } 6177 The RGW responds to this modify request. 6179 Step 12 6180 RGW to MGC: 6181 MEGACO/1 [207.176.47.89]: 26000 6182 Reply = 1237 { 6183 Context = 1 { 6184 Modify= TermA, Modify = EphA} 6185 } 6187 After hearing the busy tone lets assume that the User A goes on hook. 6188 This event is notified to the MGC through a NOTIFY message. 6190 Step 13: 6192 RGW to MGC: 6193 MEGACO/1 [209.110.59.34]:25000 6194 Transaction = 2002 { 6195 Context = 1 { 6196 Notify = TermA {ObservedEvents =1235{ 6197 20010202T10030000:al/on} 6198 } 6199 } 6200 The MGC responds to the RGWs Notify message. 6202 Step 14 6203 MGC to RGW: 6204 MEGACO/1 [216.33.33.61]:27000 6205 Reply = 2002 { 6206 Context = 1 { 6207 Notify = TermA 6208 } 6209 } 6211 The MGC, after the Release Complete message, waits for the Notify 6212 command with onhook event from UserA and after receiving it subtracts 6213 the physical and ephemeral termination at the Residential gateway. 6214 After this the user is free to participate in any further calls. 6216 Step 15 6217 MGC to RGW 6218 MEGACO/1 [216.33.33.61]: 27000 6219 Transacti 6220 on = 1237 { 6221 Context = 1 { 6222 Subtract = TermA {Audit{ }}, 6223 Subtract = EphA {Audit{Statistics}} 6224 } 6225 } 6226 The MG subtracts the two terminations from the context. The context 6227 itself is deleted with subtract of the last termination from it. The 6228 RGW responds to this transaction from MGC with statistics on 6229 ephemeral termination. 6231 Step 16 6232 RGW to MGC: 6233 MEGACO/1 [209.110.59.34]:25000 6234 Reply = 1237 { 6235 Context = 1 { 6236 Subtract = TermA 6237 Subtract = EphA { 6238 Statistics { 6239 rtp/ps=1234, ; packets sent 6240 nt/os=56789, ; octets sent 6241 rtp/pr=987, ; packets received 6242 nt/or=65432, ; octets received 6243 rtp/pl=10, ; % packets lost 6244 rtp/jit=30, 6245 rtp/delay=30 ; average latency 6246 } 6247 } 6248 } 6249 } 6251 2.14 Call from residential gateway to SIP user. 6252 This section illustrates a call between a user connected to Residential 6253 gateway and another SIP user. It is assumed that the MGC acts as a SIP 6254 server agent. The MGC generates SIP messages towards the SIP user 6255 agent/called party. When the MGC receives the digits dialed by the 6256 user even though not explicitly shown in the figure, it communicates 6257 with a routing database and finds the SIP user agent's URL. 6259 ___________________________________________________________________ 6260 | | 6261 RGW | MGC | SIP User 6262 __________________|_________________________|______________________ 6263 | | | 6264 |<--------------------| | 6265 |Modify TermA {ED=al/of{SD:cg/dt,ED:al/on,dd/ce{dmap}}} 6266 |-------------------->| | 6267 ----->| | | 6268 OffHook | | 6269 |-------------------->| | 6270 | Notify OffHook | | 6271 |<--------------------| | 6272 | Notify Resp | | 6273 ------>| | | 6274 Digits| | | 6275 |-------------------->| | 6276 | Notify Digits | | 6277 |<--------------------| | 6278 | Notify Resp | | 6279 | |------------------------>| 6280 | | INVITE | 6281 | |<------------------------| 6282 | | 180 (RING) | 6283 |<--------------------| | 6284 |Add TermA SD:cg/rt | | 6285 |Add Local Unspecified | 6286 | Remote SPecified | 6287 |-------------------->| | 6288 | Add Phy Resp | | 6289 | Add Eph Local Specified | 6290 <------| | | 6291 RingBack Tone | | 6292 | |------------------------>| 6293 | | ACK (SDP Specified) | 6294 |/---------------------------------------------\| 6295 | RTP Media | 6296 |\---------------------------------------------/| 6297 ------>| | | 6298 OnHook |-------------------->| | 6299 | Notify OnHook | | 6300 |<--------------------|------------------------>| 6301 | Notify Resp | BYE | 6302 |<--------------------| | 6303 | Sub TermA | | 6304 | Sub EphA |<------------------------| 6305 |-------------------->| 200 OK | 6306 | Sub Phy Resp | | 6307 | Sub Eph Resp Statistics | 6308 ______|_____________________|_________________________|________ 6310 The MGC generates modify command for to the residential gateway to 6311 check for offhook for Termination TermA. In this message the event 6312 offhook has an embedded signal descriptor and embedded event 6313 descriptor. The embedded signal descriptor is sent for application of 6314 dial tone immediately after the detection of the offhook event and the 6315 event descriptor then will be updated with the onhook and the digit 6316 map completion event. The Digit map is also defined in the digit map 6317 descriptor. 6319 Step 1 6320 MGC to RGW: 6321 MEGACO/1 [216.33.33.61]:27000 6322 Transaction = 1234 { 6323 Context = - { 6324 Modify = TermA { 6325 Media { 6326 LocalControl { 6327 Mode = Receiveonly} 6328 }, 6329 DigitMap= Dmap1{(2XXX)} 6330 Events = 1111 {al/of Embed {signals {cg/dt}, Events=1112 { al/on}, 6331 {dd/ce {Dmap1}}} 6332 } 6334 } 6335 } 6337 The MG after receiving the MGC's message responds to it. 6339 Step 2 6340 RGW to MGC: 6341 MEGACO/1 [209.110.59.34]: 25000 6342 Reply = 1234 { 6343 Context = - {Modify = TermA} 6344 } 6346 When the user A goes offhook RGW detects the offhook event and as it 6347 is listed in the event descriptor report the event detection using 6348 Notify command. 6350 Step 3 6351 RGW to MGC: 6352 MEGACO/1 [209.110.59.34]:25000 6353 Transaction = 2000 { 6354 Context = - { 6355 Notify = TermA {ObservedEvents =1111 { 6356 20010202T10000000:al/of}} 6357 } 6358 } 6359 the MGC responds with the Notify response. 6361 Step 4 6362 MGC to RGW: 6363 MEGACO/1 [216.33.33.61]: 27000 6364 Reply = 2000 { 6365 Context = - {Notify = TermA} 6366 } 6368 The digit map is active on the termination TermA. When the user dials 6369 the digits the they are reported to MGC through Notify command. 6371 Step 5 6372 RGW to MGC: 6373 MEGACO/1 [209.110.59.34]: 25000 6374 Transaction = 2001 { 6375 Context = - { 6376 Notify = TermA {ObservedEvents =1112 { 6377 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 6378 } 6379 } 6381 MGC after receiving the Notify command responds back with the Notify 6382 response. 6384 Step 6 6385 MGC to RGW: 6386 MEGACO/1 [216.33.33.61]: 27000 6387 Reply = 2001 { 6388 Context = - {Notify = TermA} 6389 } 6391 The MGC analyses the digits sent by the Residential Gateway. The routing 6392 functionality in MGC enabled and it indicates that the dialed digits 6393 belong to the SIP user. The MGC acts as a SIP User agent, and 6394 generates a INVITE message towards the SIP user. 6396 INVITE sip:UserB@there.com SIP/2.0 6397 Via: SIP/2.0/UDP here.com:5060 6398 From: Bob 6399 To: Julien 6400 Call-ID: 12345601@here.com 6401 CSeq: 1 INVITE 6402 Contact: Bob 6403 Content-Type: application/sdp 6404 Content-Length: 0 6406 The SDP information is not provided in this INVITE message. The MGC 6407 receives the 180- OK message from the SIP user to indicate that 6408 ringing is done towards that end. 6410 SIP/2.0 180 Ringing 6411 Via: SIP/2.0/UDP here.com:5060 6412 From: Julien 6413 To: Bob;tag=8321234356 6414 Call-ID: 12345601@here.com 6415 CSeq: 1 INVITE 6416 Content-Length: 0 6418 The MGC generates a Modify message to the Residentia 6419 l gateway to apply 6420 ringback tone to the given termination. 6422 Step 7 6423 MGC to RGW: 6424 MEGACO/1 [216.33.33.61]: 27000 6425 Transaction = 1235 { 6426 Context = $ { 6427 Modify = TermA { 6428 Signals { cg/rt } 6429 } 6431 } 6432 } 6433 The MG after receiving the Modify message applies ringback tone to the 6434 user and generates Modify response. 6436 Step 8 6437 RGW to MGC: 6438 MEGACO/1 [209.110.59.34]: 25000 6439 Reply = 1235 { 6440 Context = - {Modify = TermA} 6441 } 6443 The MGC meanwhile receives the 200 OK message from the SIP user to 6444 indicate its SDP information. 6446 SIP/2.0 200 OK 6447 Via: SIP/2.0/UDP here.com:5060 6448 From: Julien 6449 To: Bob;tag=8321234356 6450 Call-ID: 12345601@here.com 6451 CSeq: 1 INVITE 6452 Contact: Julien 6453 Content-Type: application/sdp 6454 Content-Length: 147 6456 v=0 6457 o=UserB 2890844527 2890844527 IN IP4 there.com 6458 s=Session SDP 6459 c=IN IP4 207.176.47.90 6460 t=0 0 6461 m=audio 35000 RTP/AVP 4 6462 a=rtpmap:0 PCMU/8000 6464 The MGC now generates the Add command for adding the physical 6465 termination TermA and to create an ephemeral termination EphA. The 6466 local SDP information for the ephemeral termination EphA is under 6467 specified to enable the RGW to allocate the necessary values by 6468 itself. The Remote SDP information is also sent. The mode of the two 6469 terminations is set to send receive. 6471 Step 9 6472 MGC to RGW: 6473 MEGACO/1 [216.33.33.61]: 27000 6474 Transaction = 1236 { 6475 Context = $ { 6476 Add = TermA { 6477 Media { 6478 { 6479 LocalControl { 6480 Mode = sendrecv, 6481 }, 6482 } 6483 Add = $ { 6484 Media { 6485 { 6486 LocalControl { 6487 Mode = sendrecv, 6488 }, 6489 Local { 6490 v=0 6491 c=IN IP4 $ 6492 m=audio $ RTP/AVP 4 6493 } 6494 Remote{ 6495 v=0 6496 o=UserB 2890844527 2890844527 IN IP4 there.com 6497 s=Session SDP 6498 c=IN IP4 207.176.47.90 6499 t=0 0 6500 m=audio 35000 RTP/AVP 4 6501 } 6502 } 6503 } 6504 } 6505 } 6507 MG after creating the context adds the physical termination TermA. In 6508 this case MG creates a context with ContextId 1. The ephemeral 6509 termination EphA is created and added to the context 1. The MG 6510 reserves resources for the local SDP information. In this case the 6511 IP address allocated is 209.110.59.33 and the port number used is 6512 30000. The MG responds to the Add command with this information in 6513 the response to MGC. 6515 Step 10 6516 RGW to MGC: 6517 MEGACO/1 [209.110.59.34]: 25000 6518 Reply = 1236 { 6519 Context = 1 { 6520 Add = TermA, 6521 Add=EphA{ 6522 Media { 6523 Local { 6524 v=0 6525 o=- 2890844525 2890842816 IN IP4 209.110.59.34 6526 s=- 6527 t= 00 6528 c=IN IP4 209.110.59.33 6529 m=audio 30000 RTP/AVP 4 6530 a=sendrecv 6531 } ; RTP profile for G.723 is 4 6532 } 6533 } 6534 } 6535 } 6536 } 6538 In the ACK message of SIP, the local SDP information is indicated 6539 towards the remote SIP user. 6541 ACK sip:UserB@there.com SIP/2.0 6542 Via: SIP/2.0/UDP here.com:5060 6543 From: Bob 6544 To: Julien;tag=8321234356 6545 Call-ID: 12345601@here.com 6546 CSeq: 1 ACK 6547 Content-Length: 147 6549 v=0 6550 o=UserA 2890844526 2890844526 IN IP4 here.com 6551 s=Session SDP 6552 c=IN IP4 209.110.59.33 6553 m=audio 30000 RTP/AVP 4 6554 a=rtpmap:0 PCMU/8000 6556 Now RTP media flow takes place. In the example we assume that the 6557 UserA goes onhook to terminate the call. The RGW after detecting the 6558 event reports the same to MGC in the Notify command. 6560 Step 11: 6561 RGW to MGC: 6562 MEGACO/1 [209.110.59.34]:25000 6563 Transaction = 2002 { 6564 Context = 1 { 6565 Notify = TermA {ObservedEvents =1112 { 6566 20010202T10030000:al/on} 6567 } 6568 } 6569 } 6570 The MGC responds to the MG1s Notify message. 6572 Step 12 6573 MGC to MG1: 6575 MEGACO/1 [216.33.33.61]:27000 6576 Reply = 2002 { 6577 Context = 1 { 6578 Notify = TermA 6579 } 6580 } 6581 The MGC now generates subtract commands to the RGW. The BYE message is 6582 generated by the MGC towards the other SIP user. 6584 BYE sip:UserB@here.com SIP/2.0 6585 Via: SIP/2.0/UDP there.com:5060 6586 From: Bob;tag=8321234356 6587 To: Julien 6588 Call-ID: 12345601@here.com 6589 CSeq: 1 BYE 6590 Content-Length: 0 6592 The MGC after sending the BYE message recives the 200 OK message from 6593 the remote SIP user. 6595 SIP/2.0 200 OK 6596 Via: SIP/2.0/UDP there.com:5060 6597 From: Julien;tag=8321234356 6598 To: Bob 6599 Call-ID: 12345601@here.com 6600 CSeq: 1 BYE 6601 Content-Length: 0 6603 The two Subtract commands are clubbed in a single action. 6605 Step 13 6606 MGC to RGW 6607 MEGACO/1 [216.33.33.61]: 27000 6608 Transaction = 1238 { 6609 Context = 1 { 6610 Subtract = TermA {Audit{ }}, 6611 Subtract = EphA {Audit{Statistics}} 6612 } 6613 } 6614 The MG subtracts the two terminations from the context. The context 6615 itself is deleted with the subtract of the last termination from it. 6616 The MG1 responds to this transaction from MGC with statistics on 6617 ephemeral termination. 6619 Step 14 6620 RGW to MGC: 6621 MEGACO/1 [209.110.59.34]:25000 6622 Reply = 1238 { 6623 Context = 1 { 6624 Subtract = TermA 6625 Subtract = EphA { 6626 Statistics { 6627 rtp/ps=1234, ; packets sent 6628 nt/os=56789, ; octets sent 6629 rtp/pr=987, ; packets received 6630 nt/or=65432, ; octets received 6631 rtp/pl=10, ; % packets lost 6632 rtp/jit=30, 6633 rtp/delay=30 ; average latency 6634 } 6635 } 6636 } 6637 } 6639 3 Service Change Command Usage 6641 This section lists the few methods that illustrate the usage of MEGACO 6642 protocol defined service change methods. The scenarios takes into 6643 consideration both ROOT termination and specific terminations. The 6644 intention of the section is to provide the usage of different methods 6645 and the situations when each of the methods needs to be used. 6647 3.1 ROOT Termination. 6648 3.1.1 MGC accepting registration. 6650 The MEGACO protocol defines a special termination called the ROOT 6651 termination to address the gateway as a whole. This enables easy 6652 addressing from both MG and MGC to address the gateway as a single 6653 entity. The virtual MG situations are not discussed in this version 6654 of the call flow draft. 6656 The Media Gateway once ready to receive messages from MGC registers 6657 itself using the Service change command. The termination Identifier 6658 ROOT is used for this purpose. This can be treated as the first 6659 messages sent from MG to MGC. The call flow assumes that the MGC is 6660 ready to receive the messages from the MG. 6662 _______________________________________________________________________ 6663 | 6664 Media Gateway | Media Gateway Controller 6665 ___________________________________|___________________________________ 6666 | | Port Num 2944 6667 PortNum |------------------------------------>| 6668 20000 |ServiceChange ROOT Method=Restart Sca=15000 6669 | | 6670 PortNum 20000|<------------------------------------| Port Num 2944 6671 |ServiceChange Resp ROOT sca=25000 | 6672 | | 6673 PortNum 15000|<------------------------------------| PortNum 25000 6674 | Modify *Event al/of | 6675 | | 6676 Port Num 15000|------------------------------------>| PortNum 25000 6677 | Modify Response | 6678 _____________|_____________________________________|____________________ 6680 In the following example MG generates the registration message to the 6681 default port of MGC, it also specifies the service change address to 6682 which the MGC has to send further messages. MGC also specifies the new 6683 transport address so that when MG generates any messages it generates 6684 to this address instead of the default transport address for the MGC. 6685 In the example it is to be noted that the MGC is generating the MODIFY 6686 command to the new transport address specified by MG in its 6687 registration command. 6689 The first command sent from MG (once it is ready to receive message) 6690 is the Service Change command, with ROOT termination identifier. In 6691 the example MG is generating the registration message to the default 6692 port of MGC (defined by the protocol, 2944 for Text message) 6694 Step 1: 6695 MG to MGC: 6696 MEGACO/1 [209.110.59.34]: 20000 6697 Transaction = 1234 { 6698 Context = - { 6699 ServiceChange = ROOT {Services { 6700 Method=Restart, 6701 ServiceChangeAddress=15000, Profile=ResGW/1, 6702 12345677T87654320} 6703 } 6704 } 6705 } 6707 The MGC responds the registration request to the same transport address 6708 used by MG to send the request. In the response MGC specifies its new 6709 transport address, that needs to be used by MG for further messages 6710 generated towards MGC.(In example 25000). 6712 Step 2: 6713 MGC to MG: 6714 MEGACO/1 [216.33.33.61]:2944 6715 Reply = 1234 { 6716 Context = - {ServiceChange = ROOT { 6717 Services {ServiceChangeAddress=25000, Profile=ResGW/1 , 6718 12345678T87654321} } } 6719 } 6721 In the example it is also shown that the MGC uses the transport address 6722 specified by MG for receiving messages. The initial MODIFY command sent 6723 to check for offhook event on all termination is sent to the new 6724 transport address specified by MG. 6726 Step 3: 6727 MGC to MG: 6728 MEGACO/1 [216.33.33.61]:25000 6729 Transaction = 9999 { 6730 Context = - { 6731 Modify = * { 6732 Events = 1234 {al/of} 6733 } 6734 } 6735 } 6737 The MG generates response to the new transport address specified by MGC 6738 in its registration response. 6740 Step 4: 6741 MG to MGC: 6742 MEGACO/1 [209.110.59.34]:15000 6743 Reply = 9999 { 6744 Context = - {Modify = A1} 6745 Context = - {Modify = A2} 6746 Context = - {Modify = A3} 6747 } 6749 3.1.2 MGC rejecting registration. 6751 A MG is pre-provisioned by a management mechanism with a Primary and 6752 (optionally) an ordered list of Secondary MGC's. Upon a cold start of 6753 the MG, it will issue a ServiceChange command with a "Restart" method, 6754 on the Root Termination to its primary MGC. If the MGC accepts the 6755 MG, it will send a Transaction reply, with not including a 6756 ServiceChangeMgcId parameter. If the MG receives an ServiceChangeMgcId 6757 , it sends a ServiceChange to the MGC specified in the 6758 ServiceChangeMgcId. In this example the MG generate a registration 6759 command towards the secondary MGC (This MGC may not be a 6760 pre-provisioned secondary MGC). The secondary MGC responds with 6761 the service change address to enable MG to send further messages to 6762 that specified port. 6764 ____________________________________________________________________ 6765 | | 6766 Media Gateway | Primary MGC | Secondary MGC 6767 ______________________|_________________________|___________________ 6768 | | | 6769 |----------------------->| | 6770 | ServiceChange ROOT | | 6771 | Method = Restart | | 6772 |<-----------------------| | 6773 | ServiceChange Resp ROOT| | 6774 | ServiceChangeMGCId=216.33.33.62:27000 | 6775 |---------------------------------------------->| 6776 | ServiceChange ROOT Method=Restart | 6777 |<----------------------------------------------| 6778 | ServiceChange ROOT Resp | 6779 __________|________________________|______________________|_________ 6781 The first command sent from MG (once it is ready to receive message) 6782 is the Service Change command, with ROOT termination identifier. In 6783 the example MG is generating the registration message to the Primary 6784 MGC. 6786 Step 1: 6787 MG to MGC: 6788 MEGACO/1 [209.110.59.34]: 20000 6789 Transaction = 1234 { 6790 Context = - { 6791 ServiceChange = ROOT {Services { 6792 Method=Restart, 6793 } 6794 } 6795 } 6796 } 6798 The MGC responds the registration request by specifying a new transport 6799 address of the secondary MGC that needs to be used by MG for generating 6800 another registration command towards secondary MGC. 6802 Step 2: 6803 MGC to MG: 6804 MEGACO/1 [216.33.33.61]:25000 6805 Reply = 1234 { 6806 Context = - {ServiceChange = ROOT { 6807 Services {mgcid=216.33.33.62:27000, Profile=ResGW/1 , 6808 12345678T87654321} } } 6809 } 6811 MG generates the Service Change command to the MGC specified by the 6812 primary MG. 6814 Step 3: 6815 MG to MGC: 6817 MEGACO/1 [209.110.59.34]: 20000 6818 Transaction = 4321 { 6819 Context = - { 6820 ServiceChange = ROOT {Services { 6821 Method=Restart, Reason="Cold Boot", 6822 Profile=ResGW/1, 12345677T87654320} 6823 } 6824 } 6825 } 6827 The MGC after receiving the registration request from the MG responds 6828 with the Service Change reply. 6830 Step 4: 6831 MGC to MG: 6833 MEGACO/1 [216.33.33.62]: 27000 6834 Reply = 4321 { 6835 Context = - { 6836 ServiceChange = ROOT {Services { 6837 Profile=ResGW/1, 12345677T87654320} 6838 } 6839 } 6840 } 6842 3.1.3 Handoff 6844 The Handoff method can be used both by MG and MGC. In the scenario 6845 below MGC uses this method to indicate that it is going out of service 6846 and the MGC specified in the service change need to be contacted. The 6847 MG subsequently generates the handoff message to the MGC specified in 6848 the Service change mgId in the message generated by the controlling MGC. 6850 ____________________________________________________________________ 6851 | | 6852 Media Gateway | MGC1 | MGC2 6853 ______________________|_________________________|___________________ 6854 | | | 6855 |<-----------------------| | 6856 | ServiceChange ROOT | | 6857 | Method = Handoff | | 6858 | mgcidtotry=[199.164.0.197]:45678 | 6859 |<-------- 6860 ---------------| | 6861 | ServiceChange Resp ROOT| | 6862 | | | 6863 |---------------------------------------------->| 6864 | ServiceChange ROOT Method=Handoff | 6865 | Reason="MGC directed Change" | 6866 |<----------------------------------------------| 6867 | ServiceChange ROOT Resp | 6868 __________|________________________|______________________|_________ 6870 The MGC generates the ServiceChange command with Handoff as the method. 6871 It also specifies the MGC that needs to be tried by the MG. 6873 Step 1: 6874 MGC to MG: 6876 MEGACO/1 [209.110.59.34]: 20000 6877 Transaction = 1234 { 6878 Context = - { 6879 ServiceChange = ROOT {Services { 6880 Method=Handoff, 6881 MgcIdToTry=[199.164.0.197]:45678, Profile=ResGW/1, 12345677T87654320} 6882 } 6883 } 6884 } 6886 After receiving the command from MGC, the MG tries for the MG that is 6887 specified in the message. It first responds to the service Change 6888 command generated by the controlling MGC. 6890 Step 2: 6891 MG to MGC: 6893 MEGACO/1 [216.33.33.61]: 25000 6894 Reply = 1234 { 6895 Context = - { 6896 ServiceChange = ROOT 6897 } 6898 } 6900 MG generates the Service Change command to the MGC specified by the 6901 primary MG. 6903 Step 3: 6904 MG to MGC: 6906 MEGACO/1 [209.11.59.34]: 25000 6907 Transaction = 4321 { 6908 Context = - { 6909 ServiceChange = ROOT {Services { 6910 Method=Handoff, Reason="MGC Directed Change", 6911 Profile=ResGW/1, 12345677T87654320} 6912 } 6913 } 6914 } 6916 The MGC after receiving the Handoff request from the MG responds with 6917 the Service Change reply. 6919 Step 4: 6920 MGC to MG: 6922 MEGACO/1 [216.33.33.62]: 27000 6923 Reply = 4321 { 6924 Context = - { 6925 ServiceChange = ROOT {Services { 6926 Profile=ResGW/1, 12345677T87654320} 6927 } 6928 } 6929 } 6931 3.1.4 Disconnection 6932 The MG issues the disconnection method of Service Change when it lost 6933 the communication with MGC and later regains it. The MGC normally 6934 generates an Audit message to assess the state of the terminations 6935 before and after the disconnection. The Audit command enables MGC to 6936 synchronize its state with the MG's state. 6938 _______________________________________________________________________ 6939 | 6940 Media Gateway | Media Gateway Controller 6941 ___________________________________|___________________________________ 6942 | : | 6943 | : | 6944 | : | 6945 | MG lost communication with MGC | 6946 | | 6947 |------------------------------------>| 6948 |ServiceChange ROOT Method=Disconnection 6949 | Reason="loss of lower layer Connectivity" 6950 | | 6951 |<------------------------------------| 6952 | ServiceChange Resp ROOT | 6953 | | 6954 |<------------------------------------| 6955 | Audit * ED,SD,MD | 6956 | | 6957 |------------------------------------>| 6958 | Audit EphA Response ED,SD,MD | 6959 _____________|_____________________________________|____________________ 6961 The MG generates ServiceChange command towards the MGC with 6962 method = disconnection on the ROOT termination and with reason 6963 = "Loss of lower layer connectivity". 6964 Step 1: 6965 MG to MGC: 6966 MEGACO/1 [209.110.59.34]: 20000 6967 Transaction = 1234 { 6968 Context = - { 6969 ServiceChange = ROOT {Services { 6970 Method=Disconnection, 6971 Reason=" Loss of lower layer connectivity" 6972 } 6973 } 6974 } 6975 } 6977 The MGC responds the disconnection message by responding with Service 6978 Change response. 6980 Step 2: 6981 MGC to MG: 6982 MEGACO/1 [216.33.33.61]:25000 6983 Reply = 1234 { 6984 Context = - {ServiceChange = ROOT { 6985 } } 6986 } 6988 The MGC after receiving the disconnection message audits the 6989 terminations that are present in the Media Gateway. The Audit response 6990 enables MGC to assess the state of the termination before and after 6991 disconnection. 6993 Step 3 6994 MGC to MG: 6995 MEGACO/1 [216.33.33.61]:27000 6996 Transaction = 1235 { 6997 Context = 2 {AuditValue = *{ 6998 Audit{Media, DigitMap, Events, Signals, Packages, Statistics 6999 }} 7000 } 7001 } 7003 The MG responds with the media descriptor, packages and statistics. 7004 The Digit map, signal and events are not defined on this termination 7005 hence only tokens are sent back in the response. 7007 Step 4 7008 MG to MGC: 7009 MEGACO/1 [209.110.59.34]:25000 7010 Reply = 1235 { 7011 Context = 2 { 7012 AuditValue = EphA { 7013 Media { 7014 TerminationState { ServiceState = InService, 7015 Buffer = OFF }, 7016 Stream = 1 { 7017 LocalControl { Mode = SendReceive, 7018 nt/jit=40 }, 7019 Local { 7020 v=0 7021 o=- 2890844525 2890842816 IN IP4 209.110.59.34 7022 s=- 7023 t= 00 7024 c=IN IP4 209.110.59.33 7025 m=audio 30000 RTP/AVP 0 7026 a=ptime:30 7027 }, 7028 Remote { 7029 v=0 7030 o=- 2890844525 2890842816 IN IP4 209.110.44.44 7031 s=- 7032 t= 00 7033 c=IN IP4 209.110.44.45 7034 m=audio 40000 RTP/AVP 0 7035 a=ptime:30 7036 } } }, 7037 audit { Events, 7038 Signals, 7039 DigitMap}, 7040 Packages {nt-1, rtp-1}, 7041 Statistics { rtp/ps=1200, ; packets sent 7042 nt/os=62300, ; octets sent 7043 rtp/pr=700, ; packets received 7044 nt/or=45100, ; octets received 7045 rtp/pl=0.2, ; % packet loss 7046 rtp/jit=20, 7047 rtp/delay=40 } ; avg latency 7048 } 7049 } 7050 } 7052 3.2 Service Change for Termination 7054 The service change command can be used on terminations to take 7055 terminations from in-service to out-of-service and vice versa. This 7056 section illustrates the use of service change on termination generated 7057 both from MG and MGC. The wildcard termination identifiers scenarios 7058 are discussed in a separate section. 7060 3.2.1 MG generated Service Change 7062 3.2.1.1 Graceful OOS from MG 7064 The graceful method of service change when generated from MG is used 7065 to intimate MGC the removal of terminations from in-service. The 7066 Service Change delay is used to specify the period after which the 7067 termination will be removed from service. The service change delay 7068 can be NULL or any other 32bit-value. We will consider both the cases 7069 here. Case a deals the simple case where the delay is 350 seconds and 7070 in case b we will consider NULL value for the delay. 7072 case (a) 7074 _______________________________________________________________________ 7075 | 7077 Media Gateway | Media Gateway Controller 7078 ____________________________ 7079 _______|___________________________________ 7080 | | 7081 | | 7082 |------------------------------------>| 7083 |ServiceChange CtxId=2 TermA | 7084 | Method=Graceful, Delay = 350 | 7085 | | 7086 |<------------------------------------| 7087 | ServiceChange Resp | 7088 | | 7089 | : | 7090 | : | 7091 | : | 7092 After 350 Seconds TermA is taken out of service 7093 | | 7094 |<------------------------------------| 7095 | Subtract Ctxid=2 TermA | 7096 | | 7097 |------------------------------------>| 7098 | Subtract Resp Ctxid=2 TermA | 7099 _____________|_____________________________________|____________________ 7101 Step 1 7102 MG to MGC: 7103 MEGACO/1 [216.33.33.61]: 25000 7104 Transaction = 4321 { 7105 Context = 123 { 7106 ServiceChange = TermA {Services { 7107 Method=Graceful, Reason="905 Termination taken out of 7108 Service",Delay = 350 } 7109 } 7110 } 7112 In the first step MG generates the service change command with Graceful 7113 method. The termination "TermA" is in context 123. The delay 350 7114 indicates MGC that the termination will be moved to out-of-service 7115 after 350 seconds. 7117 Step 2 7118 MGC to MG: 7119 MEGACO/1 [207.176.47.89]: 27000 7120 Reply = 4321 { 7121 Context = 123 { 7122 ServiceChange = TermA { 7124 } 7125 } 7126 } 7128 After 350 seconds the MG removes the termination "TermA" out of service. 7129 As the responsibility of clearing the context lies with the MGC, it 7130 generates the Subtract command to remove the termination out of context. 7131 The audit descriptor in this example is shown to be present and 7132 shown empty. This indicates that the MGC is not interested in any 7133 statistics to be returned in the response from MG. 7135 Step 3 7136 MGC to MG: 7137 MEGACO/1 [207.176.47.89]: 27000 7138 Transaction = 1234 { 7139 Context = 123 { 7140 Subtract = TermA { 7141 Audit = {} 7142 } 7143 } 7144 } 7146 The MG responds with the Subtract response. By the time the subtract 7147 is received by MG, the termination is out-of-service. The Subtract 7148 command can be received even for terminations that are out-of-service. 7149 After subtracting the termination from the context, the dynamic 7150 information for the context pertained to that termination is cleared. 7152 Step 4 7153 MG to MGC: 7154 MEGACO/1 [987.654,321.1]: 25000 7155 Reply = 1234 { 7156 Context = 123 { 7157 Subtract = TermA { 7158 } 7159 } 7160 } 7162 case (b) 7164 In this subsection we consider the case where the delay specified by 7165 MG is NULL. This indicates that the termination will be taken 7166 out-of-service after the termination is subtracted from valid context. 7168 _______________________________________________________________________ 7169 | 7170 Media Gateway | Media Gateway Controller 7172 ___________________________________|___________________________________ 7173 | | 7174 | | 7175 |------------------------------------>| 7176 |ServiceChange CtxId=2 TermA | 7177 | Method=Graceful, Delay = NULL | 7178 | | 7179 |<------------------------------------| 7180 | ServiceChange Resp | 7181 | | 7182 | : | 7183 | : | 7184 | : | 7185 | | 7186 |<------------------------------------| 7187 | Subtract Ctxid=2 TermA | 7188 | | 7189 |------------------------------------>| 7190 | Subtract Resp Ctxid=2 TermA | 7191 | TermA Taken Out-of-service | 7192 _____________|_____________________________________|____________________ 7194 Step 1 7195 MG to MGC: 7196 MEGACO/1 [216.33.33.61]: 25000 7197 Transaction = 4321 { 7198 Context = 123 { 7199 ServiceChange = TermA {Services { 7200 Method=Graceful, Reason="Termination taken out of 7201 Service",Delay =0 } 7202 } 7203 } 7205 MGC after receiving gets that information that the termination will 7206 not be available after the call. MGC should inhibit using this 7207 termination further in it calls. MGC responds to the MG for the 7208 command it received. 7210 Step 2 7211 MGC to MG: 7212 MEGACO/1 [207.176.47.89]: 27000 7213 Reply = 4321 { 7214 Context = 123 { 7215 ServiceChange = TermA { 7216 } 7217 } 7218 } 7220 The MGC after the call is complete subtracts the termination from the 7221 context and avoids using this termination in further calls. Even in 7222 this example the audit descriptor is empty. 7224 Step 3 7225 MGC to MG: 7226 MEGACO/1 [207.176.47.89]: 27000 7227 Transaction = 1234 { 7228 Context = 123 { 7229 Subtract = TermA { 7230 Audit = {} 7231 } 7232 } 7233 } 7235 MG after receiving the message from MGC, responds to the message and 7236 immediately removes the termination to out-of-service. 7238 Step 4 7239 MG to MGC: 7240 MEGACO/1 [987.654,321.1]: 25000 7241 Reply = 1234 { 7242 Context = 123 { 7243 Subtract = TermA { 7244 } 7245 } 7246 } 7248 3.2.1.2 Forced OOS from MG 7249 The Forced method of service change when generated from MG is used to 7250 intimate MGC the removal of terminations from in-service. The 7251 termination may be in a valid Context or NULL context when MG has 7252 generated this message. We will consider both the cases here. 7253 Case (b) deals the simple case where the termination is in NULL context 7254 and in case (a) the termination is in Valid Context . 7256 case (a) 7258 _______________________________________________________________________ 7259 | 7260 Media Gateway | Media Gateway Controller 7261 ___________________________________|___________________________________ 7262 | | 7263 | | 7264 |------------------------------------>| 7265 |ServiceChange CtxId=123 TermA | 7266 | Method = Forced | 7267 | | 7268 |<------------------------------------| 7269 | ServiceChange Resp | 7270 | | 7271 Immediately TermA is taken out of service 7272 | | 7273 |<------------------------------------| 7274 | Subtract Ctxid=123 TermA | 7275 | | 7276 |------------------------------------>| 7277 | Subtract Resp Ctxid=123 TermA | 7278 _____________|_____________________________________|_________________ 7280 Step 1 7281 MG to MGC: 7282 MEGACO/1 [216.33.33.61]: 25000 7283 Transaction = 4321 { 7284 Context = 123 { 7285 ServiceChange = TermA {Services { 7286 Method=Forced } 7287 } 7288 } 7289 } 7291 In the first step MG generates the service change command with "Forced" 7292 Service Change method. The termination "TermA" is in context 123. 7294 Step 2 7295 MGC to MG: 7296 MEGACO/1 [207.176.47.89]: 27000 7297 Reply = 4321 { 7298 Context = 123 { 7299 ServiceChange = TermA { 7300 } 7301 } 7302 } 7304 After generating the message MG immediately removes the termination 7305 "TermA" out of service. As the responsibility of clearing the context 7306 lies with the MGC, it generates the Subtract command to remove the 7307 termination out of context. The audit descriptor in this example is 7308 shown to be present and shown empty. This indicates that the MGC is not 7309 interested in any statistics to be returned in the response from MG. 7311 Step 3 7312 MGC to MG: 7313 MEGACO/1 [207.176.47.89]: 27000 7314 Transaction = 1234 { 7315 Context = 123 { 7316 Subtract = TermA { 7317 Audit = {} 7318 } 7319 } 7320 } 7322 The MG responds with the Subtract response. When the subtract message 7323 is received by MG, the termination is out-of-service. The Subtract 7324 command can be received even for terminations that are out-of-service. 7325 After subtracting the termination from the context, the Call specific 7326 information for the context pertained to that termination is cleared. 7328 Step 4 7329 MG to MGC: 7330 MEGACO/1 [987.654,321.1]: 25000 7331 Reply = 1234 { 7332 Context = 123 { 7333 Subtract = TermA { 7334 } 7335 } 7336 } 7338 case (b) 7340 In this subsection we consider the case where the termination is in NULL 7341 context. This indicates that the termination will be immediately taken 7342 out-of-service. 7344 _______________________________________________________________________ 7345 | 7346 Media Gateway | Media Gateway Controller 7347 ___________________________________|___________________________________ 7348 | | 7349 | | 7350 |------------------------------------>| 7351 |ServiceChange CtxId=NULL TermA | 7352 | Method = Forced | 7353 | | 7354 |<------------------------------------| 7355 | ServiceChange Resp | 7356 | | 7357 Immediately TermA is taken out of service 7358 | | 7359 _____________|_____________________________________|_________________ 7361 Step 1 7362 MG to MGC: 7363 MEGACO/1 [216.33.33.61]: 25000 7364 Transaction = 4321 { 7365 Context = - { 7366 ServiceChange = TermA {Services { 7367 Method=Forced } 7368 } 7369 } 7370 } 7372 MGC after receiving gets that information should inhibit using this 7373 termination further in its calls. MGC responds to the MG for the 7374 command it received. 7376 Step 2 7377 MGC to MG: 7378 MEGACO/1 [207.176.47.89]: 27000 7379 Reply = 4321 { 7380 Context = - { 7381 ServiceChange = TermA { 7382 } 7383 } 7384 } 7386 3.2.1.3 Restart INS from MG 7387 In this we will consider the message generation from MG when 7388 terminations are brought back to in-service state after they have been 7389 removed from out-of-service. Initially when the MG comes up, it doesn't 7390 generate any in-service message for specific terminations, as the 7391 service change generated on ROOT terminations serves the same purpose. 7392 MG can generate restart for multiple terminations using the wildcard 7393 mechanism. But for simplicity we are considering the case where the 7394 termination "TermA" is brought back to service. 7396 _______________________________________________________________________ 7397 | 7399 Media Gateway | Media Gateway Controller 7400 ___________________________________|___________________________________ 7401 | | 7402 | | 7403 |------------------------------------>| 7404 |ServiceChange CtxId=NULL TermA | 7405 | Method = Restart | 7406 | | 7407 |<------------------------------------| 7408 | ServiceChange Resp | 7409 | | 7410 Immediately TermA is brought back to service 7411 | | 7412 _____________|_____________________________________|_________________ 7414 Step 1 7415 MG to MGC: 7416 MEGACO/1 [216.33.33.61]: 25000 7417 Transaction = 4321 { 7418 Context = - { 7419 ServiceChange = TermA {Services { 7420 Method=Restart} 7421 } 7422 } 7423 } 7425 MGC after receiving the message updates its Database for using this 7426 Termination for future use . MGC responds to the MG for the command 7427 it received. 7429 Step 2 7430 MGC to MG: 7431 MEGACO/1 [207.176.47.89]: 27000 7432 Reply = 4321 { 7433 Context = - { 7434 ServiceChange = TermA { 7435 } 7436 } 7437 } 7439 3.2.2 MGC generated Service Change 7440 In the earlier section we saw few scenarios where the MG generated 7441 messages to MG indicating the change of state in the termination. In 7442 this section we will look into the cases where MGC generates the 7443 service change message on terminations to remove the terminations from 7444 in-service to out-of-service and vice-versa. 7446 3.2.2.1 Forced OOS from MGC 7447 When the MGC intends to remove the termination from in-service to 7448 out-of-service, it generates a forced service change message towards MG. 7449 MG immediately removes the termination from in-service to 7450 out-of-service. If the termination is in valid context, MGC can generate 7451 subtract command and following that another message with service change 7452 command to remove it from service. 7454 _______________________________________________________________________ 7455 | 7456 Media Gateway | Media Gateway Controller 7457 ___________________________________|___________________________________ 7458 | | 7459 | | 7460 |<------------------------------------| 7461 |ServiceChange CtxId=NULL TermA | 7462 | Method = Forced | 7463 | | 7464 |------------------------------------>| 7465 | ServiceChange Resp | 7466 Immediately TermA is taken out of service 7467 | | 7468 _____________|_____________________________________|_________________ 7470 Step 1 7471 MGC to MG: 7472 MEGACO/1 [207.176.47.89]: 27000 7473 Transaction = 4321 { 7474 Context = - { 7475 ServiceChange = TermA { 7476 Method=Forced 7477 } 7478 } 7479 } 7481 MG after receiving the message from MG removes the termination 7482 immediately from service. The response is generated towards for the 7483 message received from MGC. 7485 Step 2 7486 MG to MGC: 7487 MEGACO/1 [209.11.33.62]: 25000 7488 Reply = 4321 { 7489 Context = - { 7491 Internet-Draft 7492 Megaco/H.248 Call flow examples November2004 7494 ServiceChange = TermA { 7495 } 7496 } 7497 } 7499 3.2.2.2 Restart from MGC 7500 When the MGC intends to bring the termination from out-of-service to 7501 in-service, it generates a restart method of service change message 7502 towards MG. MG immediately brings the termination from out-of-service 7503 to in-service. 7505 _______________________________________________________________________ 7506 | 7507 Media Gateway | Media Gateway Controller 7508 ___________________________________|___________________________________ 7509 | | 7510 | | 7511 |<------------------------------------| 7512 |ServiceChange CtxId=NULL TermA | 7513 | Method = Restart | 7514 | | 7515 |------------------------------------>| 7516 | ServiceChange Resp | 7517 Immediately TermA is brought back to service 7518 | | 7519 _____________|_____________________________________|_________________ 7521 Step 1 7522 MGC to MG: 7523 MEGACO/1 [207.176.47.89]: 27000 7524 Transaction = 4321 { 7525 Context = - { 7526 ServiceChange = TermA { 7527 Method=Restart 7528 } 7529 } 7530 } 7532 MG after receiving the message from MG brings the termination 7533 immediately to service. The response is generated towards for the 7534 message received from MGC. 7535 Step 2 7536 MG to MGC: 7537 MEGACO/1 [209.11.33.62]: 25000 7538 Reply = 4321 { 7539 Context = - { 7540 ServiceChange = TermA { 7541 } 7542 } 7543 } 7545 4.0 Audit Command Usage 7546 The Audit command is defined in the protocol to enable MGC to get 7547 information from MG to MGC. The information received may contain the 7548 values present at the MG on a given termination or possible values that 7549 can be supported on the given termination depending upon whether the 7550 command is Audit Value or Audit Capability. The Audit command can be 7551 used on Root Termination also. The Audit command is used by MGC when 7552 it needs the state of the termination and the parameter values for 7553 that given termination. Wildcard termination identifier and wildcard 7554 contextID can be used by MGC in these Audit command. 7556 4.1 Audit Value 7557 The Audit value command can be sent from MGC to know the present values 7558 of the descriptors requested. The Audit Value command can be sent on 7559 either ROOT termination or any other termination in the MG. The 7560 section 2.1.1 illustrates the usage of Audit Value command on ROOT 7561 termination and section 2.1.2 illustrates the usage of Audit value 7562 command on a given termination. 7564 4.1.1 Audit value command on ROOT Termination 7565 The ROOT termination denotes the entire gateway as a single entity. 7566 There are two possible cases of Audit Value command on ROOT 7567 termination. The one in which the ContextId is NULL and the other in 7568 which the contextID is ALL. The case (a) below illustrate when the 7569 Audit Value command when the ContextId is * and in case (b) other in 7570 which the ContextId is NULL. The base ROOT package is assumed to be 7571 implemented on the ROOT termination. 7573 Case (a) 7574 In this section we will illustrate how MGC retrieves the lists of all 7575 contexts in MG. The Audit Value command with ContextId '*' and 7576 termination identifier ROOT enables MGC to get all the valid contextID 7577 values. 7579 Step 1 7580 MGC to MG: 7581 MEGACO/1 [207.176.47.89]: 27000 7582 Transaction = 1234 { 7583 Context = * { 7584 AuditValue= ROOT {Audit { } } 7586 } 7587 } 7588 The MG after receiving the command from MGC constructs the response 7589 with all the contextID that is active in that MG. 7591 Step 2 7593 MG to MGC: 7594 MEGACO/1 [216.33.33.61]: 25000 7595 Reply = 1234 { 7596 Context = 100 { 7597 AuditValue= TermA, TermB 7598 } 7599 Context = 200 { 7600 AuditValue= TermC, TermD 7601 } 7602 Context = 300 { 7603 AuditValue= TermE, TermF 7604 } 7605 } 7607 Case (b) 7608 This section illustrates the usage of ROOT termination identifier with 7609 NULL ContextID. This command is supposed to return the values of 7610 properties and statistics implemented on ROOT. The MGC generates the 7611 AuditValue message to MGC. 7613 Step 1 7614 MGC to MG: 7615 MEGACO/1 [207.176.47.89]: 27000 7616 Transaction = 1234 { 7617 Context = - { 7618 AuditValue= ROOT {Audit {Media, Statistics} } 7619 } 7620 } 7621 The MG responds with the values of properties that are defined on the 7622 ROOT termination. These properties include the Maximum number of 7623 contexts, Maximum number of terminations per context, normal MG 7624 execution time, normal MGC execution time and Provisional response 7625 timer value. There are no statistics that are defined on the ROOT 7626 termination. Hence the MG responds with the statistics token only. 7628 Step 2 7629 MG to MGC: 7630 MEGACO/1 [216.33.33.61]: 25000 7631 Reply = 1234 { 7632 Context = - { 7633 AuditValue= ROOT 7634 Media { 7635 TerminationState{ 7636 MaxNumberOfContexts = 100, 7637 MaxTerminationsPerContext = 2, 7638 NormalMGExecutionTime = 1000, 7639 NormalMGCExecutionTime = 1000, 7640 ProvisionalResponseTimerValue=1000, 7641 } 7642 Audit {statistics} 7643 } 7644 } 7646 4.1.2 Audit value on non-ROOT terminations 7647 This section illustrates the usage of AuditValue command on 7648 terminations other than ROOT. The Audit value command response 7649 constitutes all the active value of the descriptors that are requested 7650 by MGC. In this example we assume that the descriptors are already 7651 updated with commands from MGC. The MGC audit is done when the 7652 termination is in valid context. This is to include the statistics 7653 descriptor in the response from MG. The termination is assumed to be 7654 Ephemeral to use all the statistics defined in network package and 7655 RTP package. The second message illustrates the use of AuditValue to 7656 get the active descriptor values defined on physical terminations. 7658 Step 1 7659 MGC to MG: 7660 MEGACO/1 [216.33.33.61]:27000 7661 Transaction = 1234 { 7662 Context = 2 {AuditValue = EphA{ 7663 Audit{Media, DigitMap, Events, Signals, Packages, Statistics 7664 }} 7665 } 7666 } 7668 The MG responds with the media descriptor, packages and statistics. 7669 The Digit map, signal and events are not defined on this ephemeral 7670 termination hence only tokens are sent back in the response. 7672 Step 2 7673 MG to MGC: 7674 MEGACO/1 [209.110.59.34]:25000 7675 Reply = 1234 { 7676 Context = 2 { 7677 AuditValue = EphA { 7678 Media { 7679 TerminationState { ServiceState = InService, 7680 Buffer = OFF }, 7681 Stream = 1 { 7682 LocalControl { Mode = SendReceive, 7683 nt/jit=40 }, 7684 Local { 7685 v=0 7686 o=- 2890844525 2890842816 IN IP4 209.110.59.34 7687 s=- 7688 t= 00 7689 c=IN IP4 209.110.59.33 7690 m=audio 30000 RTP/AVP 0 7691 a=ptime:30 7692 }, 7693 Remote { 7694 v=0 7695 o=- 2890844525 2890842816 IN IP4 207.176.47.89 7696 s=- 7697 t= 00 7698 c=IN IP4 207.176.47.90 7699 m=audio 40000 RTP/AVP 0 7700 a=ptime:30 7701 } } }, 7702 audit { Events, 7703 Signals, 7704 DigitMap}, 7705 Packages {nt-1, rtp-1}, 7706 Sta 7707 tistics { rtp/ps=1200, ; packets sent 7708 nt/os=62300, ; octets sent 7709 rtp/pr=700, ; packets received 7710 nt/or=45100, ; octets received 7711 rtp/pl=0.2, ; % packet loss 7712 rtp/jit=20, 7713 rtp/delay=40 } ; avg latency 7714 } 7715 } 7716 } 7718 The MGC in the following command generates audit value command for 7719 physical termination that is in a context. Here only DigitMap, event 7720 and signal descriptor are audited. 7722 Step 3 7723 MGC to MG: 7724 MEGACO/1 [216.33.33.61]:27000 7725 Transaction = 1235 { 7726 Context = 2 {AuditValue = TermA{ 7727 Audit{ DigitMap, Events, Signals 7728 }} 7729 } 7730 } 7731 The MG after receiving the command responds with the event, signal 7732 and digit map descriptors that are active on the termination. 7733 Step 4 7734 MG to MGC: 7735 MEGACO/1 [209.110.59.34]:25000 7736 Reply = 1235 { 7737 Context = 2 { 7738 Modify = TermA{ 7739 Events = 2223 { 7740 al/on, dd/ce {DigitMap=Dialplan0} 7741 }, 7742 Signals {cg/dt}, 7743 DigitMap= Dialplan0{ 7744 (0| 00|[1-7]xxx|8xxxxxxx|Fxxxxxxx|Exx|91xxxxxxxxxx|9011x.)} 7745 } 7746 } 7747 } 7749 4.2 Audit Capability 7751 The Audit capability command from MGC retrieves the possible values of 7752 the descriptors requested. The first section 5.2.1 illustrates the 7753 Audit capability command on ROOT termination and 5.2.2 on terminations 7754 other than ROOT termination. 7756 4.2.1 Audit Capability on ROOT termination 7757 The Audit Capability command on ROOT termination is used to determine 7758 the properties that are implemented on the ROOT termination. The 7759 response from MG includes the possible values of the properties. 7761 Step 1: 7762 MGC to MG: 7763 MEGACO/1 [216.33.33.61]:27000 7764 Transaction = 1235 { 7765 Context = - {Audit Capability = ROOT{ 7766 Audit{ Media }} 7767 } 7768 } 7770 The properties that are defined on the ROOT in this example are the 7771 Max number of Contexts, maximum terminations per context, normal MG 7772 execution time, normal MGC execution time and provisional response 7773 timer value. 7775 Step 2 7776 MG to MGC: 7777 MEGACO/1 [209.110.59.34]:25000 7778 Reply = 1235 { 7779 Context = - { 7780 Modify = ROOT{ 7781 Media { TerminationState { MaxNumberOfContexts =10, 7782 MaxTerminationsPerContext =2, NormalMGExecutionTime =250, 7783 NormalMGCExecutionTime =250, 7784 ProvisionalResponseTimerValue = 200 }} 7785 } 7786 } 7787 } 7789 4.2.2 Audit Capability on non-Root Terminations. 7790 This section illustrates the usage of Audit Capability command on a 7791 non-ROOT termination. The MGC in this example is generating Audit 7792 Capability for Events descriptor and signal descriptor. The MG should 7793 respond with the possible values of these descriptors. 7795 Step 1: 7796 MGC to MG: 7797 MEGACO/1 [216.33.33.61]:27000 7798 Transaction = 1234 { 7799 Context = - {AuditCapability = TermA{ 7800 Audit{ Events, Signals 7801 }} 7802 } 7803 } 7804 The response has all the possible values. In this example for 7805 simplicity event parameters are not included. The packages that are 7806 realized on TermA are analog line supervision package, DTMF detection 7807 package call progress tone generation package, tone generation package, 7808 and generic package. 7810 Step 2 7811 MG to MGC: 7812 MEGACO/1 [209.110.59.34]:25000 7813 Reply = 1234 { 7814 Context = - { 7815 Modify = TermA{ 7816 Events = 0 {g/cause, g/signalcompletion, tonedet/std, 7817 tonedet/etd, tonedet/ltd, dd/ce, al/on, al/of, al/fl}, 7818 Signals {cg/dt, cg/rt, cg/bt, cg/ct, cg/sit, cg/wt, 7819 cg/pt, cg/cw, cg/cr}, 7820 } 7821 } 7822 } 7824 5. IVR using MEGACO 7826 The Interactive Voice Response (IVR) is assumed to be a gateway with 7827 only ephemeral terminations. The IVR is capable of playing 7828 announcements, detecting digits and reporting the same to the MGC. 7829 In this example we assume a IVR, which is controlled by a MGC. The 7830 IVR is assumed to play some announcement and detects the DTMF digits 7831 and reports the same to MGC. This section presents few call scenarios 7832 where a residential user is connected to IVR, Trunking gateway 7833 connected to IVR, call disconnection from residential and Trunking 7834 gateway to the IVR. 7836 5.1 Connecting Residential gateway to IVR. 7838 _______________________________________________________ 7839 | | | 7840 USERA | RGW1 | MGC | IVR 7841 _____________|___________|___________|__________________ 7842 | | | | 7843 | | | | 7844 | |<----------| | 7845 | |Modify to | | 7846 | |check offhook | 7847 | |---------->|<----------| 7848 | |Modify Resp| Modify Resp 7849 |----------->| | | 7850 |UserA offhook | | 7851 | |---------->| | 7852 | |Notify offhook | 7853 | |<----------| | 7854 | |Notify Resp| | 7855 | |<----------| | 7856 | |Modify SG:dialtone | 7857 | |ED:al/on,dd/ce{Dmap1} | 7858 | |DM:Dmap1 = 2XXX | 7859 |<-----------| | | 7860 |Dial Tone |---------->| | 7861 | |Modify Resp| | 7862 | | | | 7863 |----------->| | | 7864 |User Dials Digits | | 7865 | |---------->| | 7866 | |Notify digits | 7867 | |<----------| | 7868 | |Notify Response | 7869 | |<----------| | 7870 | | Add TermA SD:ringbacktone 7871 | | Add $, Local SDP Info -underspecified 7872 |<-----------| | | 7873 |RingBack Tone | | 7874 | |---------->| | 7875 | |Modify Resp TermA | 7876 | |Add Resp Local SDP (Specified) 7877 | | |---------->| 7878 | | |Add $ Local(Underspecified) 7879 | | | Remote SDP (Specified) 7880 | | | | 7881 | | |<----------| 7882 | | |Add Resp EphB Local Specified 7883 | |<----------| | 7884 | |Modify TermA SendRecv | 7885 | |Modify EphA Remote(Specified) SendRecv 7886 | |---------->| | 7887 | |Modify Resp| | 7888 |/----------------------------------\| 7889 | RTP MEDIA | 7890 |\----------------------------------/| 7891 |____________|___________| 7892 ___________| 7894 The MGC initially generates a Modify command to the Residential gateway 7895 to which UserA is connected. The Modify command lists a offhook event 7896 in the Events descriptor. The embedded signal descriptor lists the 7897 dial tone and the embedded event descriptor lists the Digit completion 7898 event of the DTMF package. 7900 Step 1 7901 MGC to RGW: 7902 MEGACO/1 [216.33.33.61]:27000 7903 Transaction = 1234 { 7904 Context = - { 7905 Modify = TermA { 7906 Media { 7907 LocalControl { 7908 Mode = ReceiveOnly} 7909 } , 7910 Events = 1111 {al/of { Signals {cg/dt},Embed { Events = 1112 {al/on, dd/ce 7911 {DigitMap=Dmap1}} }} 7912 DigitMap= Dmap1{(2XXX)} 7913 } 7914 } 7915 } 7917 The residential gateway responds the Modify command. 7919 Step 2: 7920 MG1 to MGC: 7921 MEGACO/1 [209.110.59.34]:25000 7922 Reply = 1234 { 7923 Context = - {Modify = TermA} 7924 } 7926 In this example User A goes off hook. This event is detected by the 7927 RGW and constructs the Notify message to the MGC. The MG uses the same 7928 request id (1111) sent by the MGC in its initial command. The 7929 timestamp of the event detected is also passed as parameter to the 7930 observed event. 7932 Step 3 7933 MG1 to MGC: 7934 MEGACO/1 [209.110.59.34]:25000 7935 Transaction = 2000 { 7936 Context = - { 7937 Notify = TermA {ObservedEvents =1111 { 7938 20010202T10000000:al/of}} 7939 } 7940 } 7942 MGC generates the Notify response and responds with further messages 7943 towards the MG that generated the Notify command. 7945 Step 4 7946 MGC to MG1: 7947 MEGACO/1 [216.33.33.61]: 27000 7948 Reply = 2000 { 7949 Context = - {Notify = TermA} 7950 } 7952 The users dials digits and that takes the call to be terminated on the 7953 IVR. The digits dialed by the user are reported to the MGC in the 7954 Notify command. 7956 Step 6 7957 MG1 to MGC: 7958 MEGACO/1 [209.110.59.34]: 25000 7959 Transaction = 2001 { 7960 Context = - { 7961 Notify = TermA {ObservedEvents =1112 { 7962 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 7963 } 7964 } 7966 MGC after receiving the Notify command responds back with the Notify 7967 response. 7968 Step 7 7969 MGC to MG1: 7970 MEGACO/1 [216.33.33.61]: 27000 7971 Reply = 2001 { 7972 Context = - {Notify = TermA} 7973 } 7975 MGC after receiving the Notify command starts analyzing the dialed 7976 digits. In this example the called subscriber is connected to the RGW2, 7977 which is again controlled by the same MGC. The MGC generates a 7978 transaction with two commands clubbed into the same Action. The first 7979 command is to create a new context and add the physical termination 7980 TermA into it. As the MGC is aware that the destination user UserB is 7981 free it indicates MG1 to apply ringback tone to the termination of 7982 UserA. The second command is generated to create an ephemeral 7983 termination and add the created termination in the same context that 7984 was created because of the earlier command. Here we assumed a single 7985 set of SDP information indicating that Reserve group is not used. The 7986 Reserve Value feature is also not used. 7988 Step 8 7989 MGC to MG1: 7990 MEGACO/1 [216.33.33.61]: 27000 7991 Transaction = 1235 { 7992 Context = $ { 7993 Add = TermA { 7994 Signals { cg/rt } 7995 } 7996 Add = $ { 7997 Media { 7998 { 7999 LocalControl { 8000 Mode = ReceiveOnly, 8002 }, 8003 Local { 8004 v=0 8005 c=IN IP4 $ 8006 m=audio $ RTP/AVP 4 8007 } 8008 } 8009 } 8010 } 8011 } 8013 In this example the connection fields IP address, the media field port 8014 number are unspecified. The MG in its response indicates the IPAddress 8015 and port number used. The contextID is also not specified indicating 8016 the creation of a new context. In this example the MG creates a context 8017 with contextID 1. The physical termination TermA is added to context 1. 8018 The mode of the physical termination was earlier set to Receiveonly 8019 and in this message the ephemeral termination is requested to create 8020 with Receiveonly mode. The ephemeral termination created in this 8021 example is EphA. MG responds with the allocated IP address 8022 209.110.59.33 and port number 30000. 8024 Step 9 8025 MG1 to MGC: 8026 MEGACO/1 [209.110.59.34]: 25000 8027 Reply = 1235 { 8028 Context = 1 { 8029 Add = TermA, 8030 Add=EphA{ 8031 Media { 8032 Local { 8033 v=0 8034 o=- 2890844525 2890842816 IN IP4 209.110.59.34 8035 s=- 8036 t= 00 8037 c=IN IP4 209.110.59.33 8038 m=audio 30000 RTP/AVP 4 8039 a=recvonly 8040 } ; RTP profile for G.723 is 4 8041 } 8042 } 8043 } 8044 } 8045 } 8046 MGC generates a similar transaction towards the IVR media gateway. The 8047 ContextID specified in the action is $. The Add command is meant for 8048 create an ephemeral termination. MGC has the local information for the 8049 ephemeral termination EphA in the RGW1. This information is passed as 8050 remote information to the IVR. The new ephemeral termination that will 8051 be created will take these parameters as the remote SDP information. 8053 Step 10 8054 MGC to IVR: 8055 MEGACO/1 [216.33.33.61]:27000 8056 Transaction = 1236 { 8057 Context = $ { 8058 Add = $ { 8059 Media { 8060 LocalControl { 8061 Mode = Receiveonly, 8062 }, 8063 Local { 8064 v=0 8065 c=IN IP4 $ 8066 m=audio $ RTP/AVP 4 8068 }, 8069 Remote { 8070 v=0 8071 o=- 2890844525 2890842816 IN IP4 209.110.59.34 8072 s=- 8073 t= 00 8074 c=IN IP4 209.110.59.33 8075 m=audio 30000 RTP/AVP 4 8076 } ; RTP profile for G.723 is 4 8077 } 8078 } 8079 } 8080 Events = 1113{ streamid = 1 dd/ce { dmap2 }} 8081 Digits = Dmap2 {2XXX} 8082 } 8083 } 8085 IVR after receiving the new transaction from MGC starts processing it. 8086 It creates a new context with contextID 2. The IVR creates a ephemeral 8087 termination with TerminationId EphB. The local information is 8088 under-specified from the MGC. The MG allocates the necessary resources 8089 for processing the media descriptor for the ephemeral termination. The 8090 MG responds to the MGC by specifying the IP address reserved for the 8091 local connection. In this example IVR reserves IP address 207.176.47.90 8092 and port number 40000. The IVR responds to MGC with the following 8093 transaction reply. 8095 Step 11 8096 MG2 to MGC: 8098 MEGACO/1 [207.176.47.89]: 26000 8099 Reply = 1236 { 8100 Context = 2 { 8101 Add = EphB{ 8102 Media { 8103 Local { 8104 v=0 8105 o=- 2890844525 2890842816 IN IP4 207.176.47.89 8106 s=- 8107 t= 00 8108 c=IN IP4 207.176.47.90 8109 m=audio 40000 RTP/AVP 4 8110 } 8111 } ; RTP profile for G723 is 4 8112 } 8113 } 8114 } 8115 The MGC after receiving the response forwards the remote SDP 8116 information in Modify command to the Residential gateway. The MGC 8117 generates message to the RGW to stop the ringback tone and changes 8118 the mode of the two terminations TermA and EphA to send receive. 8120 Step 12 8121 MGC to MG1: 8122 MEGACO/1 [216.33.33.61]: 27000 8123 Transaction = 1237 { 8124 Context = 1 { 8125 Modify = TermA { 8126 Media { 8127 LocalControl { 8128 Mode = sendrecv} 8129 } 8130 } 8131 S 8132 ignals { } 8133 }, 8134 Modify = EphA { 8135 Media { 8136 LocalControl { 8137 Mode = sendrecv} 8138 Remote { 8139 v=0 8140 o=- 2890844525 2890842816 IN IP4 207.176.47.89 8141 s=- 8142 t= 00 8143 c=IN IP4 207.176.47.90 8144 m=audio 40000 RTP/AVP 4 8145 } 8146 } ; RTP profile for G723 is 4 8148 } 8149 } 8150 } 8151 } 8152 The empty signal descriptor in the Modify command for termination TermA, 8153 stop the ringback tone at the calling end. The remote SDP information is 8154 updated for the ephemeral termination EphA. The mode is changed to send 8155 receive. MG1 responds to the MGC with the response for the Modify 8156 commands. 8158 Step 13 8159 MG1 to MGC: 8160 MEGACO/1 [209.110.59.34]: 25000 8161 Reply = 1237 { 8162 Context = 1 {Modify = TermA, Modify = EphA} 8163 } 8164 Now the RTP flow is established. The IVR plays an announcement. The 8165 User dials digits depending upon the announcement. The digits are 8166 detected on the RTP stream. 8168 5.2 Disconnecting Residential User from IVR. 8170 This section illustrates the case of disconnecting a residential user 8171 from IVR. The assumption is that the RTP media is already established 8172 and now the MGC has to act upon the user actions. The MGC waits for the 8173 user to go onhook. Once the UserB goes onhook, MG2 reports the 8174 notification of the onhook event to the MGC. 8176 _______________________________________________________ 8177 | | | 8178 USERA | RGW1 | MGC | IVR 8179 _____________|___________|___________|__________________ 8180 | | | | 8181 |/----------------------------------\| 8182 | RTP MEDIA | 8183 |\----------------------------------/| 8184 |----------->| | | 8185 |UserA goes OnHook | | 8186 | |---------->| | 8187 | |Notify OnHook | 8188 | |<----------| | 8189 | |Notify Resp| | 8190 | |<----------| | 8191 | |Subtract TermA | 8192 | |Subtract EphA | 8193 | |---------->| | 8194 | |Subtract Resp TermA | 8195 | |Subtract Resp EphA Statistics 8196 | | |---------->| 8197 | | |Subtract EphB 8198 | | |<----------| 8199 | | |Subtract Resp EphB Statistics 8200 |____________|___________|___________| 8202 Step 1 8203 MG2 to MGC: 8204 MEGACO/1 [207.176.47.89]: 26000 8205 Transaction = 3000 { 8206 Context = 1 { 8207 Notify = TermA {ObservedEvents =1234 { 8208 20000202T10020000:al/on}} 8209 } 8210 } 8211 The MGC responds to the MG2 with the Notify response. 8213 Step 2 8214 MGC to MG2: 8215 MEGACO/1 [216.33.33.61]: 27000 8216 Reply = 3000 { 8217 Context = 1 {Notify = TermA} 8218 } 8219 The MGC generates transactions with two subtracts commands one for 8220 physical and other for ephemeral terminations. 8222 Step 3 8223 MGC to MG1 8224 MEGACO/1 [216.33.33.61]: 27000 8225 Transaction = 1234 { 8226 Context = 1 { 8227 Subtract = TermA {Audit{ }}, 8228 Subtract = EphA {Audit{Statistics}} 8229 } 8230 } 8231 The MG subtracts the two terminations from the context. The context 8232 itself is deleted with the subtract of the last termination from it. 8233 The MG1 responds to this transaction from MGC with statistics on 8234 ephemeral termination. 8236 Step 4 8237 MG1 to MGC: 8238 MEGACO/1 [209.110.59.34]:25000 8239 Reply = 1234 { 8240 Context = 1 { 8241 Subtract = TermA 8242 Subtract = EphA { 8243 Statistics { 8244 rtp/ps=1234, ; packets sent 8245 nt/os=56789, ; octets sent 8246 rtp/pr=987, ; packets received 8247 nt/or=65432, ; octets received 8248 rtp/pl=10, ; % packets lost 8249 rtp/jit=30, 8250 rtp/delay=30 ; average latency 8251 } 8252 } 8253 } 8254 } 8256 The MGC generates similar command towards the IVR to subtract the 8257 ephemeral termination. 8259 Step 5 8260 MGC to MG2: 8261 MEGACO/1 [216.33.33.61]: 27000 8262 Transaction = 1235 { 8263 Context = 2 { 8264 Subtract = EphB {Audit{Statistics}} 8265 } 8266 } 8267 The IVR responds to the subtract commands generated by MGC. 8269 Step 6 8270 MG2 to MGC: 8271 MEGACO/1 [209.110.59.34]:25000 8272 Reply = 1235 { 8273 Context = 2 { 8274 Subtract = EphB { 8275 Statistics { 8276 rtp/ps=987, ; packets sent 8277 nt/os=65432, ; octets sent 8278 rtp/pr=1234, ; packets received 8279 nt/or=56789, ; octets received 8280 rtp/pl=10, ; % packets lost 8281 rtp/jit=30, 8282 rtp/delay=30 ; average latency 8283 } 8284 } 8285 } 8286 } 8288 5.3 Connecting Trunking Gateway to IVR. 8289 This section illustrates a call initiated from Trunking gateway towards 8290 IVR. It is assumption that the same MGC controls both the IVR and the 8291 Trunking gateway. 8293 ____________________________________________________ 8294 | | | 8295 SS7 Switch | TGW | MGC | IVR 8296 ____________|________ ___|___________|______________ 8297 | | | | 8298 | | | | 8299 |----------------------->| | 8300 | IAM | | 8301 |<-----------------------| | 8302 | ACM | | 8303 | | | | 8304 | |<----------| | 8305 | | Add Phy | | 8306 | | Add $, Local SDP Info -underspecified 8307 | |---------->| | 8308 | |Add Resp Phy | 8309 | |Add Resp Local SDP (Specified) 8310 | | |---------->| 8311 | | |Add $ Local(Underspecified) 8312 | | | Remote SDP (Specified) 8313 | | | | 8314 | | |<----------| 8315 | | |Add Resp EphB Local Specified 8316 |<-----------------------| | 8317 | ANM | | 8318 | |<----------| | 8319 | |Modify Phy SendRecv | 8320 | |Modify EphA Remote(Specified) SendRecv 8321 | |---------->| | 8322 | |Modify Resp| | 8323 | |/---------------------\| 8324 | | RTP MEDIA | 8325 | |\---------------------/| 8327 The MGC receives IAM message from the SS7 switch. In this example we 8328 assume that the Signali 8329 ng gateway and the Media Gateway are together 8330 in one physical box. The MGC responds with the ACM message. The MGC 8331 also generates add command to the Trunking gateway for addition of a 8332 circuit group of specific trunk and also another Add for ephemeral 8333 termination. For the ephemeral termination the MGC specifies few SDP 8334 parameters in the Local descriptor and many of the parameters are 8335 underspecified. This facilitates the MG to assign values by its own. 8337 Step 1 8338 MGC to TGW 8339 MEGACO/1 [216.33.33.61]: 27000 8340 Transaction = 1234 { 8341 Context = $ { 8342 Add = Trunk1/line1 {Media { 8343 LocalControl {Mode = SendRecv}}, 8344 }, 8345 Add = $ {Media { 8346 LocalControl { 8347 Mode = Receiveonly, 8348 }, 8349 Local { 8350 v=0 8351 c=IN IP4 $ 8352 m=audio $ RTP/AVP 4 8353 } 8354 } 8355 } 8356 } 8357 } 8358 } 8360 The Trunking gateway after responds with a contextID in this example 1. 8361 The ephemeral termination is created and added to the same context as 8362 the physical termination. The ephemeral termination added in this 8363 example is EPHA. The local parameters are specified in the response. 8364 The IP address chosen for the media transport in this example is 8365 207.176.47.90, and the port number specified 30000. 8367 Step 2 8368 TGW to MGC: 8369 MEGACO/1 [207.176.47.89]: 26000 8370 Reply = 1234 { 8371 Context = 1 { 8372 Add = Trunk1/line1, 8373 Add = EphB{ 8374 Media { 8375 Local { 8376 v=0 8377 o=- 2890844525 2890842816 IN IP4 207.176.47.89 8378 s=- 8379 t= 00 8380 c=IN IP4 207.176.47.90 8381 m=audio 30000 RTP/AVP 4 8382 } 8383 } ; RTP profile for G723 is 4 8384 } 8386 } 8387 } 8389 The MGC after receiving the response from the Trunking gateway uses the 8390 SDP information in the response sent from TG to the IVR. The command 8391 is for adding the ephemeral termination. The MGC requests creation of 8392 context and to the termination in the same. 8394 Step 3 8395 MGC to IVR 8396 MEGACO/1 [216.33.33.61]: 27000 8397 Transaction = 1235 { 8398 Context = $ { 8399 Add = $ {Media { 8400 LocalControl { 8401 Mode = Receiveonly, 8402 }, 8403 Local { 8404 v=0 8405 c=IN IP4 $ 8406 m=audio $ RTP/AVP 4 8407 } 8408 Remote{ 8409 v=0 8410 o=- 2890844525 2890842816 IN IP4 207.176.47.89 8411 s=- 8412 t= 00 8413 c=IN IP4 207.176.47.90 8414 m=audio 30000 RTP/AVP 4 8415 } 8416 } ; RTP profile for G723 is 4 8417 } 8418 } 8419 } 8421 The IVR creates a context with ContextId 2. The ephemeral termination 8422 EPHB is created with the specified SDP information. The response from 8423 the IVR specifies the local SDP information. 8425 Step 4 8426 RGW to MGC: 8427 MEGACO/1 [207.176.44.44]: 26000 8428 Reply = 1235 { 8429 Context = 2 { 8430 Add = EphB{ 8431 Media { 8432 Local { 8433 v=0 8434 o=- 2890844525 2890842816 IN IP4 207.176.44.44 8435 s=- 8436 t= 00 8437 c=IN IP4 207.176.44.45 8438 m=audio 30000 RTP/AVP 4 8439 } 8440 } ; RTP profile for G723 is 4 8441 } 8442 } 8443 } 8444 The MGC after receiving the response with the local SDP information 8445 conveys the same to the Trunking gateway as remote SDP information in 8446 the Modify command. 8448 Step 5 8449 MGC to TGW 8450 MEGACO/1 [216.33.33.61]: 27000 8451 Transaction = 1236 { 8452 Context = 1 { 8453 Modify = EphA 8454 {Media { 8455 LocalControl { 8456 Mode = SendRecv, 8457 }, 8458 Remote{ 8459 v=0 8460 o=- 2890844525 2890842816 IN IP4 207.176.44.44 8461 s=- 8462 t= 00 8463 c=IN IP4 207.176.44.45 8464 m=audio 30000 RTP/AVP 4 8465 } 8466 } 8467 } 8468 } 8469 } 8470 } 8472 The Trunking gateway responds to the Modify command. 8474 Step 6 8475 TGW to MGC: 8476 MEGACO/1 [207.176.47.89]: 26000 8477 Reply = 1236 { 8478 Context = 1 { 8479 Modify = EphB 8480 } 8481 } 8482 5.4 Disconnecting Trunking gateway from IVR 8483 This section illustrates the disconnection of an IVR call from 8484 Trunking gateway. The Trunking gateway and the Signaling gateway are 8485 assumed to be present in the same physical box. The SS7 messages are 8486 received by the Signaling gateway and are forwarded to the MGC through 8487 the signaling gateway. 8489 _____________________________________________________ 8490 | | | 8491 SS7 Switch | TGW | MGC | IVR 8492 ____________|________ ___|___________|______________ 8493 | | | | 8494 | |/---------------------\| 8495 | | RTP MEDIA | 8496 | |\---------------------/| 8497 |----------------------->| | 8498 | REL | | 8499 | |<----------| | 8500 | |Subtract Phy | 8501 | |Subtract EphA | 8502 | |---------->| | 8503 | |Subtract Resp Phy | 8504 | |Subtract Resp EphA Statistics 8505 |<-----------------------| | 8506 | RLC | | 8507 | | |---------->| 8508 | | |Subtract EphB 8509 | | |<----------| 8510 | | |Subtract Resp EphB Statistics 8511 |____________|___________|___________| 8513 It is assumed that the RTP stream is already established. The REL 8514 message is received by the MGC through the Signaling gateway. The MGC 8515 initiates the terminating of the IVR call. The MGC initially generates 8516 a transaction with two subtracts towards the Trunking gateway. One 8517 subtract for removing the physical termination and other to remove the 8518 ephemeral termination. 8520 Step 1 8521 MGC to TGW: 8522 MEGACO/1 [216.33.33.61]: 27000 8523 Transaction = 1234 8524 Context = 2 { 8525 Subtract = Trunk2/line1{Audit{ }}, 8526 Subtract = EphB {Audit{Statistics}} 8527 } 8528 } 8529 The TGW responds to the subtract commands generated by MGC. 8531 Step 2 8532 TGW to MGC: 8533 MEGACO/1 [209.110.59.34]:26000 8534 Reply = 1234 8535 Context = 2 { 8536 Subtract = Trunk2/line1 8537 Subtract = EphB { 8538 Statistics { 8539 rtp/ps=987, ; packets sent 8540 nt/os=65432, ; octets sent 8541 rtp/pr=1234, ; packets received 8542 nt/or=56789, ; octets received 8543 rtp/pl=10, ; % packets lost 8544 rtp/jit=30, 8545 rtp/delay=30 ; average latency 8546 } 8547 } 8548 } 8549 } 8551 The MGC generates similar command towards the IVR. 8553 Step 3 8554 MGC to IVR: 8555 MEGACO/1 [216.33.33.61]: 27000 8556 Transaction = 1235{ 8557 Context = 1 { 8558 Subtract = EphA {Audit{Statistics}} 8559 } 8560 } 8561 The IVR responds to the subtract commands generated by MGC. 8563 Step 4 8564 IVR to MGC: 8565 MEGACO/1 [209.110.59.34]:25000 8566 Reply = 1235{ 8567 Context = 1 { 8569 Subtract = EphA { 8570 Statistics { 8571 rtp/ps=987, ; packets sent 8572 nt/os=65432, ; octets sent 8573 rtp/pr=1234, ; packets received 8574 nt/or=56789, ; octets received 8575 rtp/pl=10, ; % packets lost 8576 rtp/jit=30, 8577 rtp/delay=30 ; average latency 8578 } 8579 } 8580 } 8581 } 8583 6. Wildcard ContextID usage 8584 The protocol defines two types of wildcards. The CHOOSE wildcard and 8585 the ALL wildcard. The CHOOSE wildcard when used from MGC for the 8586 ContextId enables MG to create a new context The ALL wildcard 8587 ContextID enables MGC to multiple contexts using a single Action. If 8588 the MGC needs to perform an operation common to all Contexts it can 8589 use the Wildcard ContextID for this purpose. For example if MGC needs 8590 to subtract all terminations irrespective of context they are in, it 8591 can use ContextId '*' and termination ID '*'. This enables MG to 8592 perform the operation on all contexts that are active in the MG. The 8593 CHOOSE wildcard had already been in used in earlier call flows. This 8594 section shows a scenario where MGC uses * wildcard in ContextID. 8596 Step 1: 8597 MGC to MG: 8598 MEGACO/1 [216.33.33.61]: 27000 8599 Transaction = 1234{ 8600 Context = * { 8601 Subtract = *{Audit{Statistics}} 8602 } 8603 } 8604 The MG now subtracts all terminations in any of the contexts. There 8605 will be as many actions as the number of Contexts that are active in 8606 the MG. In this example we assume two contexts Context1 and Context2 8607 with one two terminations in each of the context. 8609 Step 2: 8610 MG to MGC: 8611 MEGACO/1 [209.110.59.34]:25000 8612 Reply = 1234{ 8613 Context = 1{ 8614 Subtract = TermA {audit = { Statistics}} 8615 Subtract = EphA 8616 Statistics { 8617 rtp/ps=987, ; packets sent 8618 nt/os=65432, ; octets sent 8619 rtp/pr=1234, ; packets received 8620 nt/or=56789, ; octets received 8621 rtp/pl=10, ; % packets lost 8622 rtp/jit=30, 8623 rtp/delay=30 ; average latency 8624 } 8625 } 8626 } 8627 Context = 2 { 8628 Subtract = TermB { audit = {statistics }} 8629 Subtract = EphB { 8630 Statistics { 8631 rtp/ps=987, ; packets sent 8632 nt/os=65432, ; octets sent 8633 rtp/pr=1234, ; packets received 8634 nt/or=56789, ; octets received 8635 rtp/pl=10, ; % packets lost 8636 rtp/jit=30, 8637 rtp/delay=30 ; average latency 8638 } 8639 } 8640 } 8641 } 8643 7. Wildcard TerminationId Usage 8644 The wildcards when used for TerminationId can represent CHOOSE, ALL or 8645 partial choose. The partial choose enables MGC to specify part of 8646 TerminationId and leaving the remaining part of the TerminationId 8647 either * or $. The CHOOSE wildcard usage is illustrated in earlier 8648 examples. The Partial wildcard usage is illustrated in the Trunking 8649 gateway examples. The * wildcard example is treated in this section. 8651 In this example the MGC generates a command with wildcard ALL "*" 8652 TerminationId, to enable MG to processes the command for all the 8653 terminations in the Gateway. The Media gateway is assumed to be a 8654 residential gateway. The events descriptor requests MG to check for 8655 offhook and apply dial tone when the offhook event occurs. 8657 Step 1: 8658 MGC to RGW: 8659 MEGACO/1 [216.33.33.61]:27000 8660 Transaction = 1234 { 8661 Context = - { 8662 Modify = *{ 8663 Media { 8664 LocalControl { 8665 Mode = ReceiveOnly} 8666 } , 8667 Events = 1111 {al/of { signals { cg / dt } , 8668 embed { event=1112 { al/on , dd/ce { dmap1} } } } } 8670 DigitMap = dmap1 { 2XXX } 8671 } 8672 } 8673 } 8675 The MG responds with specifying each of the TerminationId for which 8676 the command has been processed. 8678 Step 2: 8679 MG1 to MGC: 8680 MEGACO/1 [209.110.59.34]:25000 8681 Reply = 1234 { 8682 Context = - 8683 {Modify = TermA} 8684 {Modify = TermB} 8685 {Modify = TermC} 8686 {Modify = TermD} 8687 {Modify = TermE} 8688 {Modify = TermF} 8689 {Modify = TermG} 8690 {Modify = TermH} 8691 {Modify = TermI} 8692 {Modify = TermJ} 8693 } 8695 8. Supplementary services support 8697 8.1 Call Transfer 8699 _____________________________________________________________________ 8700 | | | 8701 MG1 | MGC | MG2 | MG3 8702 ________________|_______________|________________|____________________ 8703 | | | | 8704 |<----------------|-------------->| | 8705 |Initial Modify | Initial Modify| | 8706 | |-------------------------------->| 8707 | | Initial Modify | 8708 |---------------->|<--------------| | 8709 |Modify Response | Modify Resp | | 8710 | |<--------------------------------| 8711 | | Modify Response | 8712 |---------------->| | | 8713 | Notify OffHook | | | 8714 |<----------------| | | 8715 |Notify Response | | | 8716 |<----------------| | | 8717 |Modify ED:dd/ce{DigitMap=dmap1},al/on SD:cg/dt | 8718 <-----|---------------->| | | 8719 Dial | Modify Resp | | | 8720 Tone | | | | 8721 ------>| | | | 8722 Digits |---------------->| | | 8723 |Notify Digits | | | 8724 |<----------------| | | 8725 |Notify Response | | | 8726 |<----------------| | | 8727 | Add Phy | | | 8728 |Add $ Local Unspecified | | 8729 |---------------->| | | 8730 |Add Phy Resp | | | 8731 |Add Eph Resp Local specified | | 8732 | |-------------->| | 8733 | |Add Phy | | 8734 | |Add $ Local unspecified | 8735 | | Remote Specified | 8736 | |<--------------| | 8737 | | Add Phy Resp | | 8738 | | Add Eph Resp Local specified | 8739 |<----------------| | | 8740 |Modify ringback | | | 8741 <------|---------------->| | | 8742 ring | Modify Resp | | | 8743 back | | | | 8744 tone | | | | 8745 | |<--------------| | 8746 | |Notify OffHook | | 8747 | |-------------->| | 8748 | |Noti 8749 fy Resp | | 8750 | |-------------->| | 8751 | | Modify TermB mode=sendrecv | 8752 | | ED=al/fl, al/on | 8753 | | Modify EPhB mode=sendrecv | 8754 | |<--------------| | 8755 | | Modify Resp TermB | 8756 | | Modify Resp EphB | 8757 |<----------------| | | 8758 | Modify Eph Remote Specified | | 8759 |---------------->| | | 8760 | Modify Resp | | | 8761 |/-------------------------------\| | 8762 | RTP MEDIA | | 8763 |\-------------------------------/| | 8764 | |<--------------| | 8765 | | Notify Flash | | 8766 | |-------------->| | 8767 |<----------------| Notify Resp | | 8768 | Modify RecvOnly | --->| | 8769 |---------------->| DialTone| | 8770 | Modify Resp |<--------------| | 8771 | | Notify Digits | | 8772 | |-------------->| | 8773 | | Notify Resp | | 8774 | |-------------------------------->| 8775 | | Add Phy | 8776 | | Add $ Local Unspecified | 8777 | | Remote Specified | 8778 | |<--------------------------------| 8779 | | Add Phy Resp | 8780 | | Add Eph Resp Local Specified 8781 | |-------------->| | 8782 | | Modify TermB SD: cg/rt | 8783 | |<--------------| | 8784 | | Modify Resp TermB | 8785 | |<--------------------------------| 8786 | | Notify OffHook | 8787 | |-------------------------------->| 8788 | | Notify Resp | 8789 | |-------------------------------->| 8790 | | Modify TermC mode=sendrecv | 8791 | | Modify EphC mode=sendrecv | 8792 | |<--------------------------------| 8793 | | Modify Resp TermC | 8794 | | Modify Resp EphC | 8795 | |-------------->| | 8796 | | Modify Eph Remote | 8797 | |<--------------| | 8798 | | Modify Resp | | 8799 | | |/---------------\| 8800 | | | RTP Media | 8801 | | |\---------------/| 8802 | |<--------------| | 8803 | | Notify OnHook | | 8804 | |-------------->| | 8805 | | Notify Resp | | 8806 | |-------------->| | 8807 | | Sub Phy | | 8808 | | Sub Eph | | 8809 | |<--------------| | 8810 | | Sub Phy Resp | | 8811 | | Sub Eph Resp Statistics | 8812 | |-------------------------------->| 8813 | | Modify EphC Remote | 8814 | |<--------------------------------| 8815 | | Modify Eph Resp | 8816 |<----------------| | | 8817 | Modify EphA Remote | | 8818 |---------------->| | | 8819 | Modify RespEphA | | | 8820 |/-------------------------------------------------\| 8821 | RTP MEDIA | 8822 |\-------------------------------------------------/| 8823 |---------------->| | | 8824 | Notify OnHook | | | 8825 |---------------->| | | 8826 | Notify Resp | | | 8827 | |-------------------------------->| 8828 | | Modify Phy busyTone | 8829 | |<--------------------------------| 8830 | | Modify Resp | 8831 |<----------------| | | 8832 | Sub Phy Sub Eph | | | 8833 |---------------->| | | 8834 | Sub Phy Resp | | | 8835 | Sub Eph Resp Statistics | | 8836 | |<--------------------------------| 8837 | | Notify OnHook | 8838 | |-------------------------------->| 8839 | | Notify Resp | 8840 | |-------------------------------->| 8841 | | Sub Phy | 8842 | | Sub Eph | 8843 | |<--------------------------------| 8844 | | Sub Phy Resp | 8845 | | Sub Eph Resp Statistics | 8846 _______|_________________|_______________|_________________|____________ 8848 The call Transfer feature in PSTN allows a user to tranfer a call that he 8849 Has received to another phone. This feature should be supported by MGC 8850 so that it is capable of generating required messages towards MG. In this 8851 example we assume that the MGC is capable of supporting Call Transfer. 8852 UserB, the Called party press flash hook and initiates call towards UserC. 8853 After UserC responds to the call, UserB goes onhook to connect UserA with 8854 UserC. 8856 The MGC generates the Modify message towards all the three Residential 8857 gateways to check for off hook on the terminations. (A wildcard 8858 command may also be used in this scenario but for simplicity we 8859 consider only command to specific terminations). We are not 8860 considering the embedded signal and event descriptors here. 8861 The MGC in NULL context generates the command to the 8862 specific termination TermA. The off hook event of the analog 8863 supervision package is used here. The request identifier specified 8864 in this example is 1111. The mode of the termination is set to 8865 receive only. The stream parameter is used with only the Local control 8866 descriptor. 8868 Step 1 8869 MGC to RGW1: 8870 MEGACO/1 [216.33.33.61]:27000 8871 Transaction = 1234 { 8872 Context = - { 8873 Modify = TermA { 8874 Media { 8875 LocalControl { 8876 Mode = Receiveonly} 8877 } , 8878 Events = 1111 {al/of} 8879 } 8880 } 8881 } 8883 MG, after receiving the command from MGC, accepts it and responds with 8884 the transaction reply. Here for only MG1 is shown to generate the 8885 response. In fact all the RGW ge 8886 nerate the responses. 8888 Step 2 8890 MG1 to MGC: 8891 MEGACO/1 [209.110.59.34]:25000 8892 Reply = 1234 { 8893 Context = - {Modify = TermA} 8894 } 8896 In this example User A goes off hook. This event is detected by the 8897 RGW1 and it constructs the Notify message to the MGC. The MG uses the 8898 same request id (1111) sent by the MGC in its initial command. The 8899 timestamp of the event detected is also passed as a parameter to the 8900 observed event. 8902 Step 3 8903 MG1 to MGC: 8904 MEGACO/1 [209.110.59.34]:25000 8905 Transaction = 2000 { 8906 Context = - { 8907 Notify = TermA {ObservedEvents =1111 { 8908 20010202T10000000:al/of}} 8910 } 8911 } 8913 MGC generates the Notify response and responds with further messages 8914 towards the MG that generated the Notify command. 8916 Step 4 8917 MGC to MG1: 8918 MEGACO/1 [216.33.33.61]: 27000 8919 Reply = 2000 { 8920 Context = - {Notify = TermA} 8921 } 8923 The MGC in the following command issues a MODIFY command. The Modify 8924 command contains a signal descriptor for the application of dial tone 8925 to the user. The digit map descriptor here is used to configure a 8926 digit map on the termination. The digit map name used in the example 8927 is Dmap1 and the dial patter is 2XXX. The event descriptor lists digit 8928 map completion event of the DTMF detection package and onhook of the 8929 analog line supervision package. The request id specified in the 8930 event descriptor is 1112. 8932 Step 5 8933 MGC to MG1: 8934 MEGACO/1 [216.33.33.61]: 27000 8935 Transaction = 1235 { 8936 Context = - { 8937 Modify = TermA { 8938 Signals {cg/dt}, 8939 DigitMap= Dmap1{(2XXX)} 8940 Events = 1112 { 8941 al/on, dd/ce {DigitMap=Dmap1} 8942 }, 8943 } 8944 } 8945 } 8947 MG validates the Modify command and responds to the MGC and then starts 8948 processing the descriptors listed. 8949 Step 6 8950 MG1 to MGC: 8951 MEGACO/1 [209.110.59.34]: 25000 8952 Reply = 1235 { 8953 Context = - {Modify = TermA} 8954 } 8956 The descriptors are processed in the order that is specified by the 8957 MGC. In this example the order of descriptor is signal descriptor, 8958 digit map descriptor followed by Events descriptor. The MG first 8959 processes the signal descriptor. The dial tone is applied to the 8960 Termination specified. The Digit map is updated in the Database of the 8961 termination. The Digit map will be ACTIVE on the termination as the 8962 digit map completion event is listed in the events descriptor with the 8963 digit map name. A digit map is activated whenever a new event 8964 descriptor is applied to the termination or embedded event descriptor 8965 is activated, and that event descriptor contains a digit map completion 8966 event which itself contains a digit map parameter. UserA after receiving 8967 the dial tone starts dialing digits. In this example we will not dwell 8968 into the different possible cases of digit dialing by the user. Its 8969 assumed that the digits dialed by the user, match with the digit map 8970 pattern. Lets assume that the user has dialed 2992. MG detects the 8971 digits dialed and reports the same as parameter to the digit map 8972 completion event. A notify command is generated from MG1 to MGC. The 8973 MG again uses the same request identifier as specified by the MGC. 8975 Step 7 8976 MG1 to MGC: 8977 MEGACO/1 [209.110.59.34]: 25000 8978 Transaction = 2001 { 8979 Context = - { 8980 Notify = TermA {ObservedEvents =1112 { 8981 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 8982 } 8983 } 8985 MGC after receiving the Notify command responds back with the Notify 8986 response. 8988 Step 8 8989 MGC to MG1: 8990 MEGACO/1 [216.33.33.61]: 27000 8991 Reply = 2001 { 8992 Context = - {Notify = TermA} 8993 } 8995 MGC after receiving the Notify command starts analyzing the dialed 8996 digits. In this example the called subscriber is connected to the 8997 RGW2, which is again controlled by the same MGC. The MGC generates a 8998 transaction with two commands clubbed into the same Action. The first 8999 command is to create a new context and add the physical termination 9000 TermA into it. The second command is generated to create an ephemeral 9001 termination and add the created termination in the same context 9002 that was created because of the earlier command. Here we assumed a 9003 single set of SDP information indicating that Reserve group is not 9004 used. The Reserve Value feature is also not used. 9006 Step 9 9007 MGC to MG1: 9008 MEGACO/1 [216.33.33.61]: 27000 9009 Transaction = 1236 { 9010 Context = $ { 9011 Add = TermA { 9012 } 9013 Add = $ { 9014 Media { 9015 { 9016 LocalControl { 9017 Mode = ReceiveOnly, 9018 }, 9019 Local { 9020 v=0 9021 c=IN IP4 $ 9022 m=audio $ RTP/AVP 4 9023 } 9024 } 9025 } 9026 } 9027 } 9029 In this example the connection fields IP address, the media field port 9030 number are unspecified. The MG in its response indicates the IPAddress 9031 and port number used. The contextID is also not specified indicating 9032 the creation of a new context. In this example the MG creates a context 9033 with contextID 1. The physical termination TermA is added to context 1. 9034 The mode of the physical termination was earlier set to Receiveonly 9035 and in this message the ephemeral termination is requested to create 9036 with Receiveonly mode. The ephemeral termination created in this example 9037 is EphA. MG responds with the allocated IP address 209.110.59.33 and 9038 port number 30000. 9040 Step 10 9041 MG1 to MGC: 9042 MEGACO/1 [209.110.59.34]: 25000 9043 Reply = 1236 { 9044 Context = 1 { 9045 Add = TermA, 9046 Add=EphA{ 9047 Media { 9048 Local { 9049 v=0 9050 o=- 2890844525 2890842816 IN IP4 209.110.59.34 9051 s=- 9052 t= 00 9053 c=IN IP4 209.110.59.33 9054 m=audio 30000 RTP/AVP 4 9055 a=recvonly 9056 } ; RTP profile for G.723 is 4 9057 } 9058 } 9059 } 9060 } 9061 } 9063 MGC generates a similar transaction towards the RGW2. The ContextID 9064 specified in the action is $. The first command adds the physical 9065 termination TermB to the newly created context. The Signal descriptor 9066 for this termination lists the ring signal of the analog line 9067 supervision package. This alerting signal is applied to the 9068 termination of the TermB. The Event descriptor specifies offhook 9069 event of the analog line supervision package. The second Add is meant 9070 to create an ephemeral termination. MGC has the local information for 9071 the ephemeral termination EphA in the RGW1. This information is passed 9072 as remote information to the RGW2. The new ephemeral termination that 9073 will be created will take these parameters as the remote SDP 9074 information. 9076 Step 11 9077 MGC to MG2: 9078 MEGACO/1 [216.33.33.61]:27000 9079 Transaction = 1237 { 9080 Context = $ { 9081 Add = TermB { Media { 9082 LocalControl {Mode = Receiveonly} }, 9083 Signals {al/ri} 9084 Events=1234{al/of}, 9085 }, 9086 Add = $ {Media { 9087 LocalControl { 9088 Mode = Receiveonly, 9089 }, 9090 Local { 9091 v=0 9092 c=IN IP4 $ 9093 m=audio $ RTP/AVP 4 9095 }, 9096 Remote { 9097 v=0 9098 o=- 2890844525 2890842816 IN IP4 209.110.59.34 9099 s=- 9100 t= 00 9101 c=IN IP4 209.1 9102 10.59.33 9103 m=audio 30000 RTP/AVP 4 9104 } ; RTP profile for G.723 is 4 9105 } 9106 } 9107 } 9108 } 9109 } 9111 MG2 after receiving the new transaction from MGC starts processing it. 9112 It creates a new context with contextID 2. It adds the physical 9113 termination TermB to that context and start processing the descriptor 9114 specified in the command. The signal descriptor lists "ring" signal to 9115 be applied on the termination. The event descriptor lists the off 9116 hook event. The RGW2 creates a ephemeral termination with 9117 TerminationId EphB. The local information is under-specified from the 9118 MGC. The MG allocates the necessary resources for processing the media 9119 descriptor for the ephemeral termination. The MG responds to the MGC by 9120 specifying the IP address reserved for the local connection. In this 9121 example MG2 reserves IP address 207.176.47.90 and port number 40000. 9122 The MG2 responds to MGC with the following transaction reply. 9124 Step 12 9125 MG2 to MGC: 9126 MEGACO/1 [207.176.47.89]: 26000 9127 Reply = 1237 { 9128 Context = 2 { 9129 Add = TermB, 9130 Add = EphB{ 9131 Media { 9132 Local { 9133 v=0 9134 o=- 2890844525 2890842816 IN IP4 207.176.47.89 9135 s=- 9136 t= 00 9137 c=IN IP4 207.176.47.90 9138 m=audio 40000 RTP/AVP 4 9139 } 9140 } ; RTP profile for G723 is 4 9141 } 9142 } 9143 } 9145 The MGC after receiving the response generates a modify command towards 9146 the originating RGW1, to generate ringback tone to the userA. After processing 9147 the command the RGW1 generates modify response to the MGC. 9148 The MGC waits for the UserB to go offhook. Once the UserB goes offhook, 9149 MG2 reports the notification of the offhook event to the MGC. 9151 Step 13 9152 MG2 to MGC: 9153 MEGACO/1 [207.176.47.89]: 26000 9154 Transaction = 3000 { 9155 Context = 2 { 9156 Notify = TermB {ObservedEvents =1234 { 9157 20000202T10020000:al/of}} 9158 } 9159 } 9160 The MGC responds to the MG2 with the Notify response. 9162 Step 14 9163 MGC to MG2: 9164 MEGACO/1 [216.33.33.61]: 27000 9165 Reply = 3000 { 9166 Context = 2 {Notify = TermB} 9167 } 9168 The MGC generates a transaction towards MG2 with two commands in one 9169 action. It changes the mode of both the terminations to sendrecv. The 9170 Signal descriptor of the Modify command for the first termination, 9171 stops the ring signal already applied on the termination and the event 9172 descriptor lists the onhook and flashhook events 9174 Step 15: 9175 MGC to MG2: 9176 MEGACO/1 [216.33.33.61]: 27000 9177 Transaction = 1238 { 9178 Context = 2 { 9179 Modify = TermB { 9180 Signals { } ; to turn off ringing 9181 Events = 1235 {al/on, al/fl Embed { signals cg/dt, 9182 events =1235 { dd/ce{dmap1}, al/on }}}, 9183 Media { 9184 LocalControl { 9185 Mode = SendRecv, 9186 } 9187 } 9188 } 9189 Modify = EphB{ 9190 Media { 9191 LocalControl { 9192 Mode = SendRecv, 9193 } 9194 } 9195 } 9196 } 9198 The MG2 responds to the request from MGC. 9200 Step 16 9201 MG2 to MGC: 9202 MEGACO/1 [207.176.47.89]: 26000 9203 Reply = 1238 { 9204 Context = 2 {Modify = TermB , Modify = EphB} 9205 } 9207 The MGC generates message to the MG1 to stop the ringback tone and to 9208 report the remote SDP information for the ephemeral termination EphA. 9209 The mode of the two terminations TermA and EphA is set to send 9210 receive. 9212 Step 17 9213 MGC to MG1: 9214 MEGACO/1 [216.33.33.61]: 27000 9215 Transaction = 1239 { 9216 Context = 1 { 9217 Modify = TermA { 9218 Media { 9219 LocalControl { 9220 Mode = sendrecv} 9221 } 9222 } 9223 Signals { } 9224 }, 9225 Modify = EphA { 9226 Media { 9227 LocalControl { 9228 Mode = sendrecv} 9229 Remote { 9230 v=0 9231 o=- 2890844525 2890842816 IN IP4 207.176.47.89 9232 s=- 9233 t= 00 9234 c=IN IP4 207.176.47.90 9235 m=audio 40000 RTP/AVP 4 9236 } 9237 } ; RTP profile for G723 is 4 9238 } 9239 } 9240 } 9241 } 9242 The empty signal descriptor in the Modify command for termination 9243 TermA, stops the ringback tone at the calling end. The remote SDP 9244 information is updated for the ephemeral termination EphA. The mode 9245 is changed to send receive. MG1 responds to the MGC with the response 9246 for the Modify commands. 9248 Step 18 9249 MG1 to MGC: 9250 MEGACO/1 [209.110.59.34]: 25000 9251 Reply = 1239 { 9252 Context = 1 {Modify = TermA, Modify = EphA} 9253 } 9254 The two users can exchange media, as the RTP streams are made 9255 bi-directional. 9256 The UserB now press flash to dial the UserC number. 9257 The UserB flash event is reported to MGC using the Notify message. 9259 Step 19 9260 MG2 to MGC: 9261 MEGACO/1 [209.110.59.34]:29000 9262 Transaction = 3001 { 9263 Context = 2 { 9264 Notify = TermB {ObservedEvents =1235 { 9265 20040202T10000000:al/fl}} 9266 } 9267 } 9269 MGC generates the Notify response. 9271 Step 20 9272 MGC to MG2: 9273 MEGACO/1 [216.33.33.61]: 27000 9274 Reply = 3001 { 9275 Context = 2 {Notify = TermB} 9276 } 9278 The MGC then generates a modify command to the UserA, to make the 9279 mode of the both physical and ephemeral terminations to recvonly 9280 so that there is no media between userA and UserB. 9282 The UserB gets the dial tone and starts dialing the digits. In this 9283 example the UserB dials the number 2804 of UserC. The dialed digits 9284 are reported to MGC using digit map completion event. The digits are 9285 reported using the Notify command. 9287 Step 21 9288 MG2 to MGC: 9289 MEGACO/1 [209.110.59.34]: 27000 9290 Transaction = 3002 { 9291 Context = 2 { 9292 Notify = TermB {ObservedEvents =1235 { 9293 20040202T10010000:dd/ce{ds="2804",Meth=FM}}} 9294 } 9295 } 9297 MGC after receiving the Notify command responds back with the Notify 9298 response. 9300 Step 22 9301 MGC to MG2: 9302 MEGACO/1 [216.33.33.61]: 27000 9303 Reply = 3002 { 9304 Context = 2 {Notify = TermB} 9305 } 9306 The UserC is alerted with ring signal to indicate that a call is to be 9307 received. The Add command for the physical termination TermC with 9308 signal descriptor allows the ring signal to be applied on the 9309 termination. The ephemeral termination is also requested to be created 9310 with under specified Local SDP information and fully specified Remote 9311 SDP information. 9313 Step 23: 9314 MGC to MG3: 9315 MEGACO/1 [216.33.33.61]: 27000 9316 Transaction = 1240 { 9317 Context = $ { 9318 Add = TermC { 9319 Signals { al/ri } 9320 Events = 1111{ al/of embed { events = 1111 {{ al/on } }}} 9321 } 9322 Add = $ { 9323 Media { 9324 { 9325 LocalControl { 9326 Mode = ReceiveOnly, 9327 }, 9328 Local { 9329 v=0 9330 c=IN IP4 $ 9331 m=audio $ RTP/AVP 4 9332 } 9333 Remote { 9334 v=0 9335 o=- 2890844525 2890842816 IN IP4 207.176.47.89 9336 s=- 9337 t= 00 9338 c=IN IP4 207.176.47.90 9339 m=audio 40000 RTP/AVP 4 9340 } 9341 } ; RTP profile for G723 is 4 9342 } 9343 } 9344 } 9345 } 9347 In this example the SDP local information connection fields IP 9348 address, the media field port numbers are unspecified. The MG3 in its 9349 response indicates the IPAddress and port 9350 number used. The contextID 9351 is also not specified indicating the creation of a new context. In 9352 this example the MG3 creates a context with contextID 3. The physical 9353 termination TermC is added to context 3. The mode of the physical 9354 termination was earlier set to Receiveonly and in this message the 9355 ephemeral termination is requested to create with Receiveonly mode. 9356 The ephemeral termination created in this example is EphC. MG3 responds 9357 with the allocated IP address 192.168.0.160 and port number 50000. 9359 Step 24 9360 MG3 to MGC: 9361 MEGACO/1 [209.110.59.35]: 25000 9362 Reply = 1240 { 9363 Context = 3 { 9364 Add = TermC, 9365 Add=EphC{ 9366 Media { 9367 Local { 9368 v=0 9369 o=- 2890844525 2890842816 IN IP4 209.110.59.35 9370 s=- 9371 t= 00 9372 c=IN IP4 192.168.0.160 9373 m=audio 50000 RTP/AVP 4 9374 a=recvonly 9375 } ; RTP profile for G.723 is 4 9376 } 9377 } 9378 } 9379 } 9380 } 9382 The MGC generates ring back tone towards the UserB to indicate that 9383 altering signal has been sent to the called party UserC. 9384 Step 25 9385 MGC to MG2: 9386 MEGACO/1 [216.33.33.61]: 27000 9387 Transaction = 1241 { 9388 Context = 2 { 9389 Modify = TermB { 9390 Signals { cg/rt } 9391 } 9392 } 9393 } 9394 } 9395 The MG2 after receiving the Modify command applies the ring back tone 9396 specified in the signals descriptor. The Modify response is sent back 9397 to MGC. 9399 Step 26 9400 MG2 to MGC: 9401 MEGACO/1 [209.110.59.34]: 25000 9402 Reply = 1241 { 9403 Context = 2 { 9404 Modify= TermB, 9405 } 9406 } 9407 The UserC after receiving the ring signal goes offhook. The offhook 9408 event is reported to MGC in the Notify command. 9410 Step 27 9411 MG3 to MGC: 9412 MEGACO/1 [209.110.59.35]:25000 9413 Transaction = 4001 { 9414 Context = 3 { 9415 Notify = TermC {ObservedEvents =1111 { 9416 20050202T10000000:al/of}} 9417 } 9418 } 9420 MGC generates the Notify response and responds with further messages 9421 towards the MG that generated the Notify command. 9423 Step 28 9424 MGC to MG3: 9425 MEGACO/1 [216.33.33.61]: 27000 9426 Reply = 4001 { 9427 Context = 3 {Notify = TermC} 9428 } 9429 The MGC now updates the UserC connected to the Residential gateway 3 9430 with modify command to change the mode of the terminations set to 9431 sendrecv. 9433 Step 29: 9434 MGC to MG3: 9435 MEGACO/1 [216.33.33.61]: 27000 9436 Transaction = 1242 { 9437 Context = 3 { 9438 Modify = TermC { 9439 Signals { } ; to turn off ringing 9440 Events = 1235 {al/on}, 9441 Media { 9442 LocalControl { 9443 Mode = SendRecv, 9444 } 9445 } 9446 } 9447 Modify = EphC{ 9448 Media { 9449 LocalControl { 9450 Mode = SendRecv, 9451 } 9452 } 9453 } 9454 } 9455 The Residential gateway responds with the Modify response command. 9457 Step 30 9458 MG3 to MGC: 9459 MEGACO/1 [209.110.59.35]: 25000 9460 Reply = 1242 { 9461 Context = 3 {Modify = TermC , Modify = EphC} 9462 } 9463 The MGC now updates the ephemeral termination EphB of UserB connected 9464 to the Residential gateway 2 with the local SDP information of UserC as 9465 remote SDP information. The Modify command with the remote SDP 9466 information is sent to RGW2, for the ephemeral termination. 9468 Step 31 9469 MGC to MG2: 9470 MEGACO/1 [216.33.33.61]: 27000 9471 Transaction = 1243 { 9472 Context = 2 { 9473 Modify = EphB { 9474 Media{ 9475 LocalControl{ mode = sendrecv }, 9476 Remote { 9477 v=0 9478 o=- 2890844525 2890842816 IN IP4 209.110.59.35 9479 s=- 9480 t= 00 9481 c=IN IP4 192.168.0.160 9482 m=audio 50000 RTP/AVP 4 9483 } ; RTP profile for G.723 is 4 9484 } 9485 } 9487 } 9488 } 9489 The RGW2 responds with the Modify response. 9491 Step 32 9492 MG2 to MGC: 9493 MEGACO/1 [207.176.47.89]: 26000 9494 Reply = 1243 { 9495 Context = 2 {Modify = EphB } 9496 } 9498 The RGW2 updates the remote SDP information and generates the Modify 9499 response towards MGC. The Media path is established between UserB and 9500 UserC. The two users can be in conversation. The intention of this call 9501 scenario is to illustrate the call that is initiated from UserA to 9502 UserC. Now the UserB is in connection with UserC and after UserB goes 9503 onhook the MGC modifies the remote SDP information of both 9504 UserA and UserB. This makes the remote SDP of UserA point to 9505 UserC and remote SDP information of UserA point to UserC. When the 9506 UserB goes onhook the event is reported to MGC in the Notify command. 9508 Step 33 9509 MG2 to MGC: 9510 MEGACO/1 [207.176.47.89]:26000 9511 Transaction = 3003 { 9512 Context = 2 { 9513 Notify = TermB {ObservedEvents =1235 { 9514 20060202T10000000:al/on}} 9515 } 9516 } 9518 MGC generates the Notify response and responds with further messages 9519 towards the MG that generated the Notify command. 9521 Step 34 9522 MGC to MG2: 9523 MEGACO/1 [216.33.33.61]: 27000 9524 Reply = 3003 { 9525 Context = 2 {Notify = TermB} 9526 } 9527 The MGC also subtracts the terminations TermB and EphB from context2. 9528 The context also gets destroyed after deletion of the last termination. 9529 The Subtract commands are generated in a single transaction. 9531 Step 35 9532 MGC to MG2: 9533 MEGACO/1 [216.33.33.61]: 27000 9534 Transaction = 1244 { 9535 Context = 2 { 9536 Subtract = TermB {Audit{ }}, 9537 Subtract = EphB {Audit{Statistics}} 9538 } 9539 } 9540 The MG2 responds to the subtract commands generated by MGC. 9542 Step 36 9543 MG2 to MGC: 9544 MEGACO/1 [209.176.47.89]:26000 9545 Reply = 1244 { 9546 Context = 2 { 9547 Subtract = TermB 9548 Subtract = EphB { 9549 Statistics { 9550 rtp/ps=987, ; packets sent 9551 nt/os=65432, ; octets sent 9552 rtp/pr=1234, ; packets received 9553 nt/or=56789, ; octets received 9554 rtp/pl=10, ; % packets lost 9555 rtp/jit=30, 9556 rtp/delay=30 ; average latency 9557 } 9558 } 9559 } 9560 } 9561 UserB is not in connection with UserA and UserC. The MGC 9562 now initiates the Modify command towards UserA and UserC. 9564 Step 37 9565 MGC to MG1: 9566 MEGACO/1 [216.33.33.61]: 27000 9567 Transaction = 1245 { 9568 Context = 1 { 9569 Modify = TermA { 9570 Media { 9571 LocalControl { 9572 Mode = sendrecv} 9573 } 9574 } 9575 }, 9576 Modify = EphA { 9577 Media { 9578 LocalControl { 9579 Mode = sendrecv} 9580 Remote { 9581 v=0 9582 o=- 2890844525 2890842816 IN IP4 209.110.59.35 9583 s=- 9584 t= 00 9585 c=IN IP4 192.168.0.160 9586 m=audio 50000 RTP/AVP 4 9587 } 9588 } ; RTP profile for G723 is 4 9589 } 9590 } 9591 } 9592 } 9593 The remote SDP information is updated for the ephemeral termination 9594 EphA. The mode is changed to send receive. MG1 responds to the MGC 9595 with the response for the Modify commands. 9597 Step 38 9598 MG1 to MGC: 9599 MEGACO/1 [209.110.59.34]: 25000 9600 Reply = 1245 { 9601 Context = 1 {Modify = TermA, Modify = EphA} 9602 } 9604 Similar command is generated towards UserC connected to RGW3. 9605 Step 39 9606 MGC to MG3: 9607 MEGACO/1 [216.33.33.61]: 27000 9608 Transaction = 1246 { 9609 Context = 3 { 9610 Modify = TermC { 9611 Media { 9612 LocalCon 9613 trol { 9614 Mode = sendrecv} 9615 } 9616 } 9617 }, 9618 Modify = EphC { 9619 Media { 9620 LocalControl { 9621 Mode = sendrecv} 9622 Remote { 9623 v=0 9624 o=- 2890844525 2890842816 IN IP4 209.110.59.34 9625 s=- 9626 t= 00 9627 c=IN IP4 209.110.59.33 9628 m=audio 30000 RTP/AVP 4 9629 } 9630 } ; RTP profile for G723 is 4 9631 } 9633 } 9634 } 9635 } 9636 The remote SDP information is updated for the ephemeral termination 9637 EphC. The mode is changed to send receive. MG3 responds to the MGC 9638 with the response for the Modify commands. 9640 Step 40 9641 MG3 to MGC: 9642 MEGACO/1 [209.110.59.35]: 25000 9643 Reply = 1246 { 9644 Context = 3 {Modify = TermC, Modify = EphC} 9645 } 9646 The users UserA and UserC can be in conversation as the modes are 9647 changed to sendrecv. The call is transferred completely from UserB to 9648 UserC. The call can be terminated by any of the users. The UserA after 9649 the conversation goes onhook indicating the tearing down of the call. 9650 The same is reported in the Notify command from MG1 to MGC. 9652 Step 41 9653 MG1 to MGC: 9654 MEGACO/1 [209.110.59.34]:25000 9655 Transaction = 2003 { 9656 Context = 1 { 9657 Notify = TermA {ObservedEvents =1112 { 9658 20010202T10030000:al/on} 9659 } 9660 } 9661 } 9662 The MGC responds to the MG1s Notify message. 9664 Step 42 9665 MGC to RGW1: 9666 MEGACO/1 [216.33.33.61]:27000 9667 Reply = 2003 { 9668 Context = 1 { 9669 Notify = TermA 9670 } 9671 } 9673 The MGC generates a Modify command towards the RGW3 for applying 9674 busy tone to the called subscriber. The mode of both terminations is 9675 set to receive only. 9677 Step 43 9678 MGC to RGW3: 9679 MEGACO/1 [216.33.33.61]: 27000 9680 Transaction = 1247 { 9681 Context = 3 { 9682 Modify = TermC { 9683 Signals {cg/bt} 9684 Media { 9685 LocalControl { 9686 Mode = recvonly} 9687 } 9688 }, 9689 Modify = EphC { 9690 Media { 9691 LocalControl { 9692 Mode = recvonly} 9693 } 9694 } 9695 } 9696 } 9697 } 9699 The MG3 responds to this modify request. 9701 Step 44 9702 MG3 to MGC: 9703 MEGACO/1 [209.110.59.35]: 25000 9704 Reply = 1247 { 9705 Context = 3 { 9706 Modify= TermC, Modify = EphC} 9707 } 9709 The MGC generates a transaction with two subtracts commands one for 9710 physical and other for ephemeral terminations 9712 Step 45: 9713 MGC to MG1 9714 MEGACO/1 [216.33.33.61]: 27000 9715 Transaction = 1248 { 9716 Context = 1 { 9717 Subtract = TermA {Audit{ }}, 9718 Subtract = EphA {Audit{Statistics}} 9719 } 9720 } 9721 The MG subtracts the two terminations from the context. The context 9722 itself is deleted with the subtract of the last termination from it. 9723 The MG1 responds to this transaction from MGC with statistics on 9724 ephemeral termination. 9726 Step 46 9727 MG1 to MGC: 9729 MEGACO/1 [209.110.59.34]:25000 9730 Reply = 1248 { 9731 Context = 1 { 9732 Subtract = TermA 9733 Subtract = EphA { 9734 Statistics { 9735 rtp/ps=1234, ; packets sent 9736 nt/os=56789, ; octets sent 9737 rtp/pr=987, ; packets received 9738 nt/or=65432, ; octets received 9739 rtp/pl=10, ; % packets lost 9740 rtp/jit=30, 9741 rtp/delay=30 ; average latency 9742 } 9743 } 9744 } 9745 } 9747 Step 47 9748 MG3 to MGC: 9749 MEGACO/1 [209.110.59.35]:25000 9750 Transaction = 4002 { 9751 Context = 3 { 9752 Notify = TermC {ObservedEvents =1235 { 9753 20050202T10000000:al/on}} 9754 } 9755 } 9757 MGC generates the Notify response and responds with further messages 9758 towards the MG that generated the Notify command. 9760 Step 48 9761 MGC to MG3: 9762 MEGACO/1 [216.33.33.61]: 27000 9763 Reply = 4002 { 9764 Context = 3 {Notify = TermC} 9765 } 9767 The MGC generates Subtract command towards MG3. 9769 Step 49 9770 MGC to MG3: 9771 MEGACO/1 [216.33.33.61]: 27000 9772 Transaction = 1249 { 9773 Context = 3 { 9774 Subtract = TermC {Audit{ }}, 9775 Subtract = EphC {Audit{Statistics}} 9776 } 9778 } 9779 The MG3 responds to the subtract commands generated by MGC. 9781 Step 50 9782 MG3 to MGC: 9783 MEGACO/1 [209.110.59.34]:28000 9784 Reply = 1249 { 9785 Context = 3 { 9786 Subtract = TermC 9787 Subtract = EphC { 9788 Statistics { 9789 rtp/ps=987, ; packets sent 9790 nt/os=65432, ; octets sent 9791 rtp/pr=1234, ; packets received 9792 nt/or=56789, ; octets received 9793 rtp/pl=10, ; % packets lost 9794 rtp/jit=30, 9795 rtp/delay=30 ; average latency 9796 } 9797 } 9798 } 9799 } 9800 The MGC generates the message as shown in step 1 to all the three gateways, 9801 to enable the users to participate/initiate in further calls. 9803 8.2 Call waiting 9805 The call waiting feature in Telephone networks enables a user to 9806 receive two calls simultaneously. The user can switch between the calls. 9807 In this example UserA calls UserB and when the conversation is taking 9808 place UserC calls UserB. The UserB hears a call waiting tone and 9809 switches to this new call using flash hook. UserC disconnects the call 9810 and the UserB continues his conversation with UserA. The MGC should 9811 support such features and UserB should subscribe for this feature. The 9812 figure above suggests that all the three MG's are controlled by the 9813 same MGC. Even though this many not true in real world this assumption 9814 holds good for illustration purposes. 9816 _____________________________________________________________________ 9817 | | | 9818 MG1 | MGC | MG2 | MG3 9819 ________________|_______________|________________|____________________ 9820 | | | | 9821 |<----------------|-------------->| | 9822 |Initial Modify | Initial Modify| | 9823 | |-------------------------------->| 9824 | | Initial Modify | 9825 |---------------->|<--------------| | 9826 |Modify Response | Modify Resp | | 9827 | |<--------------------------------| 9828 | | Modify Response | 9829 |---------------->| | | 9830 | Notify OffHook | | | 9831 |<----------------| | | 9832 |Notify Response | | | 9833 |<----------------| | | 9834 |Modify ED:dd/ce{DmapName=dmap1},al/on SD:cg/dt | 9835 <-----|---------------->| | | 9836 Dial | Modify Resp | | | 9837 Tone | | | | 9838 ------>| | | | 9839 Digits |---------------->| | | 9840 |Notify Digits | | | 9841 |<----------------| | | 9842 |Notify Response | | | 9843 |<----------------| | | 9844 | Add Phy | | | 9845 |Add $ Loca 9846 l Unspecified | | 9847 |---------------->| | | 9848 |Add Phy Resp | | | 9849 |Add EphAResp Local specified | | 9850 | |-------------->| | 9851 | |Add Phy | | 9852 | |Add $ Local unspecified | 9853 | | Remote Specified | 9854 | |<--------------| | 9855 | | Add Phy Resp | | 9856 | | Add Eph Resp Local specified | 9857 |<----------------| | | 9858 | Modify TermA SD: cg/rt | | 9859 <------| | | | 9860 ring back tone | | | 9861 |---------------->| | | 9862 | Modify RespTermA|<--------------| | 9863 | | Notify TermB offhook | 9864 | |-------------->| | 9865 | |Notify resp TermB | 9866 | |-------------->| | 9867 | | Modify TermB mode=sendrecv | 9868 | | Modify EphB mode=sendrecv | 9869 | |<--------------| | 9870 | | Modify Resp TermB | 9871 | | Modify Resp EphB | 9872 | Modify Resp TermA | | 9873 |<----------------| | | 9874 | Modify Eph Remote Specified | | 9875 |---------------->| | | 9876 | Modify Resp | | | 9877 |/-------------------------------\| | 9878 | RTP MEDIA | | 9879 |\-------------------------------/| | 9880 | |<--------------------------------| 9881 | | Notify OffHook | 9882 | |<--------------------------------| 9883 | | Notify Resp | 9884 | |<--------------------------------| 9885 | | Notify Digits | 9886 | |-------------------------------->| 9887 | | Notify Response | 9888 | |-------------------------------->| 9889 | | Add Phy SD:cg/rt | 9890 | | Add $ Local Unspecified| 9891 | | Remote Specified | 9892 | |<--------------------------------| 9893 | | Add Phy Resp | 9894 | | Add Eph Resp Local SPecified 9895 | |-------------->| | 9896 | |Modify SD:callwaiting tone | 9897 | |<--------------| | 9898 | |Modify Resp | | 9899 | |<--------------| | 9900 | | Notify Flash | | 9901 |<----------------| | | 9902 |Modify Eph recvonly | | 9903 | |-------------->| | 9904 | | Notify Resp | | 9905 |---------------->| | | 9906 | Modify Resp |-------------->| | 9907 | | Modify Eph | | 9908 | |<--------------| | 9909 | | ModifyEphBResp|/---------------\| 9910 | | | RTP MEDIA | 9911 | | |\---------------/| 9912 | |<--------------------------------| 9913 | | Notify OnHook | 9914 | |-------------------------------->| 9915 | | Notify Resp | 9916 | |-------------->| | 9917 | | Modify SD:cg/bt | 9918 | |<--------------| | 9919 | | Modify Resp | | 9920 | |<--------------| | 9921 | | Notify Flash | | 9922 | |-------------->| | 9923 | | Notify Resp | | 9924 |<----------------| | | 9925 | Modify Eph SendRecv | | 9926 |---------------->| | | 9927 | Modify Resp |-------------->| | 9928 | | Modify Eph | | 9929 | |<--------------| | 9930 | | Modify Resp | | 9931 |/-------------------------------\| | 9932 | RTP Media | | 9933 |\-------------------------------/| | 9934 |---------------->| | | 9935 | Notify OnHook | | | 9936 |<----------------| | | 9937 | Notify Resp | | | 9938 | |-------------->| | 9939 | | Modify Phy SD:cg/bt | 9940 | |<--------------| | 9941 | | Modify Resp | | 9942 |<----------------| | | 9943 | Sub TermA | | | 9944 | Sub EphA | | | 9945 |---------------->| | | 9946 | Sub TermA Resp | | | 9947 | Sub EphA Resp Statistics | | 9948 | |<--------------| | 9949 | | Notify OnHook | | 9950 | |-------------->| | 9951 | | Notify Resp | | 9952 | |-------------->| | 9953 | | Sub TermB | | 9954 | | Sub EphB | | 9955 | |<--------------| | 9956 | | Sub TermB Resp| | 9957 | | Sub EphB Resp Statistics | 9958 _______|_________________|_______________|_________________| 9960 The MGC generates the Modify message towards all the three Residential 9961 gateways to check for off hook on the terminations. (A wildcard 9962 command may also be used in this scenario but for simplicity we consider 9963 only command to specific terminations). The MGC 9964 in NULL context generated the command to the specific termination 9965 TermA. The off hook event of the analog supervision package is used 9966 here. The request identifier specified here in the example is 1111. 9967 The mode of the termination is set to receive only. The stream 9968 parameter is used with only the Local control descriptor. 9970 Step 1 9971 MGC to RGW1: 9972 MEGACO/1 [216.33.33.61]: 27000 9973 Transaction = 1234 { 9974 Context 9975 = - { 9976 Modify = TermA { 9977 Media { 9978 LocalControl { 9979 Mode = ReceiveOnly} 9980 } , 9981 Events = 1111 {al/of} 9982 } 9983 } 9984 } 9986 MG after receiving the command from MGC accepts it and responds with 9987 the transaction reply. Here for only MG1 is shown to generate the 9988 response. In fact all the three RGW generates the response. 9990 Step 2 9992 MG1 to MGC: 9993 MEGACO/1 [209.110.59.34]:25000 9994 Reply = 1234 { 9995 Context = - {Modify = TermA} 9996 } 9998 In this example User A goes off hook. This event is detected by the 9999 RGW1 and constructs the Notify message to the MGC. The MG uses the same 10000 request id (1111) sent by the MGC in its initial command. The 10001 timestamp of the event detected is also passed as a parameter to the 10002 observed event. 10004 Step 3 10005 MG1 to MGC: 10006 MEGACO/1 [209.110.59.34]:25000 10007 Transaction = 2000 { 10008 Context = - { 10009 Notify = TermA {ObservedEvents =1111 { 10010 20010202T10000000:al/of}} 10011 } 10012 } 10014 MGC generates the Notify response and responds with further messages 10015 towards the MG that generated the Notify command. 10017 Step 4 10018 MGC to MG1: 10019 MEGACO/1 [216.33.33.61]: 27000 10020 Reply = 2000 { 10021 Context = - {Notify = TermA} 10022 } 10024 The MGC in the following command issues a MODIFY command. The Modify 10025 command contains a signal descriptor for the application of dial tone 10026 to the user. The digit map descriptor here is used to configure a 10027 digit map on the termination. The digit map name used in the example 10028 is Dmap1 and the dial patter is 2XXX. The event descriptor lists digit 10029 map completion event of the DTMF detection package and onhook of the 10030 analog line supervision package. The request id specified in the event 10031 descriptor is 1112. 10033 Step 5 10034 MGC to MG1: 10035 MEGACO/1 [216.33.33.61]: 27000 10036 Transaction = 1235 { 10037 Context = - { 10038 Modify = TermA { 10039 Signals {cg/dt}, 10040 DigitMap= Dmap1{(2XXX)} 10041 Events = 1112 { 10042 al/on, dd/ce {DigitMap=Dmap1} 10043 }, 10044 } 10045 } 10046 } 10048 MG after receiving validation responds the Modify command responds the 10049 MGC and starts processing the descriptors listed. 10051 Step 6 10052 MG1 to MGC: 10053 MEGACO/1 [209.110.59.34]: 25000 10054 Reply = 1235 { 10055 Context = - {Modify = TermA} 10056 } 10058 The descriptors are processed in the order that is specified by the MGC. 10059 In this example the order of descriptor is signal descriptor, digit 10060 map descriptor followed by Events descriptor. The MG first processes 10061 the signal descriptor. The dial tone is applied to the Termination 10062 specified. The Digit map is updated in the Database of the termination. 10063 The Digit map is ACTIVE on the termination as the digit map 10064 completion event is listed in the events descriptor with the digit map 10065 name. A digit map is activated whenever a new event descriptor is 10066 applied to the termination or embedded event descriptor is activated, 10067 and that event descriptor contains a digit map completion event which 10068 itself contains a digit map parameter. UserA after receiving the dial 10069 tone starts dialing digits. In this example we will not dwell into the 10070 different possible cases of digit dialing by the user. The digits dialed 10071 by user match with the digitmap pattern. Lets assume that the user has 10072 dialed 2992. MG detects the digits dialed and reports the same as parameter 10073 to the digit map completion event. A notify command is generated from MG1 to 10074 MGC. The MG again used the same request identifier as specified by the MGC. 10076 Step 7 10077 MG1 to MGC: 10078 MEGACO/1 [209.110.59.34]: 25000 10079 Transaction = 2001 { 10080 Context = - { 10081 Notify = TermA {ObservedEvents =1112 { 10082 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 10083 } 10084 } 10086 MGC after receiving the Notify command responds back with the Notify 10087 response. 10088 Step 8 10089 MGC to MG1: 10090 MEGACO/1 [216.33.33.61]: 27000 10091 Reply = 2001 { 10092 Context = - {Notify = TermA} 10093 } 10095 MGC after receiving the Notify command starts analyzing the dialed 10096 digits. In this example the called subscriber is connected to the 10097 RGW2, which is again controlled by the same MGC. The MGC generates a 10098 transaction with two commands clubbed into the same Action. The first 10099 command is to create a new context and add the physical termination 10100 TermA into it. As the MGC is aware that the destination user UserB is 10101 free it indicates MG1 to apply ringback tone to the termination of 10102 UserA. The second command is generated to create an ephemeral 10103 termination and add the created termination in the same context that 10104 was created as a result of the earlier command. Here we assumed a single 10105 set of SDP information indicating that Reserve group is not used. The 10106 Reserve Value feature is also not used. 10108 Step 9 10109 MGC to MG1: 10110 MEGACO/1 [216.33.33.61]: 27000 10111 Transaction = 1236 { 10112 Context = $ { 10113 Add = TermA { 10114 Signals { cg/rt } 10115 } 10116 Add = $ { 10117 Media { 10118 { 10119 LocalControl { 10120 Mode = ReceiveOnly, 10121 }, 10122 Local { 10123 v=0 10124 c=IN IP4 $ 10125 m=audio $ RTP/AVP 4 10126 } 10127 } 10128 } 10129 } 10130 } 10132 In this example the connection fields IP address, the media field port 10133 number are unspecified. The MG in its response indicates the IPAddress 10134 and port number used. The contextID is also not specified indicating 10135 the creation of a new context. In this example the MG creates a context 10136 with contextID 1. The physical termination TermA is added to context 1. 10137 The mode of the physical termination was earlier set to Receiveonly 10138 and in this message the ephemeral termination is requested to create 10139 with Receiveonly mode. The ephemeral termination created in this 10140 example is EphA. MG responds with the allocated IP address 10141 209.110.59.33 and port number 30000. 10143 Step 10 10144 MG1 to MGC: 10145 MEGACO/1 [209.110.59.34]: 25000 10146 Reply = 1236 { 10147 Context = 1 { 10148 Add = TermA, 10149 Add=EphA{ 10150 Media { 10151 Local { 10152 v=0 10153 o=- 2890844525 2890842816 IN IP4 209.110.59.34 10154 s=- 10155 t= 00 10156 c=IN IP4 209.110.59.33 10157 m=audio 30000 RTP/AVP 4 10158 a=recvonly 10159 } ; RTP profile for G.723 is 4 10160 } 10161 } 10162 } 10163 } 10164 } 10166 MGC generates a similar transaction towards the RGW2. The ContextID 10167 specified in the action is $. The first command adds the physical 10168 termination TermB to the newly created context. The Signal descriptor 10169 for this termination lists the ring signal of the analog line 10170 supervision package. This alerting signal is applied to the 10171 termination of the TermB. The Event descriptor specifies offhook event 10172 of the analog line supervision package. The second Add is meant to 10173 create an ephemeral termination. MGC has the local information for the 10174 ephemeral termination EphA in the RGW1. This information is passed as 10175 remote information to the RGW2. The new ephemeral termination that 10176 will be created will take these parameters as the remote SDP 10177 information. 10179 Step 11 10180 MGC to MG2: 10181 MEGACO/1 [216.33.33.61]:27000 10182 Transaction = 1237 { 10183 Context = $ { 10184 Add = TermB { Media { 10185 LocalControl {Mode = Receiveonly} }, 10186 Signals {al/ri} 10188 Events=1234{al/of}, 10189 }, 10190 Add = $ {Media { 10191 LocalControl { 10192 Mode = Receiveonly, 10193 }, 10194 Local { 10195 v=0 10196 c=IN IP4 $ 10197 m=audio $ RTP/AVP 4 10199 }, 10200 Remote { 10201 v=0 10202 o=- 2890844525 2890842816 IN IP4 209.110.59.34 10203 s=- 10204 t= 00 10205 c=IN IP4 209.110.59.33 10206 m=audio 30000 RTP/AVP 4 10207 } ; RTP profile for G.723 is 4 10208 } 10209 } 10210 } 10211 } 10212 } 10214 MG2, after receiving the new transaction from MGC starts processing it. 10215 It creates a new context with contextID 2. It adds the physical 10216 termination TermB to that context and start processing the descriptor 10217 specified in the command. The signal descriptor lists "ring" signal to 10218 be applied on the termination. The event descriptor lists the off 10219 hook event. The RGW2 creates an ephemeral termination with TerminationId 10220 EphB. The local information is under-specified from the MGC. The MG 10221 allocates the necessary resources for processing the media descriptor 10222 for the ephemeral termination. The MG responds to the MGC by specifying 10223 the IP address reserved for the local connection. In this example MG2 10224 reserves IP address 207.176.47.90 and port number 40000. The MG2 10225 responds to MGC with the following transaction reply. 10227 Step 12 10228 MG2 to MGC: 10229 MEGACO/1 [207.176.47.89]: 26000 10230 Reply = 1237 { 10231 Context = 2 { 10232 Add = TermB, 10233 Add = EphB{ 10234 Media { 10235 Local { 10236 v=0 10237 o=- 2890844525 2890842816 IN IP4 207.176.47.89 10238 s=- 10239 t= 00 10240 c=IN IP4 207.176.47.90 10241 m=audio 40000 RTP/AVP 4 10242 } 10243 } ; RTP profile for G723 is 4 10244 } 10245 } 10246 } 10247 The MGC after recieving the ADD response from RGW2, generates Modify command 10248 towards RGW1, to generate ring back tone to the user. The RGW1 after processing 10249 the command generates Modify response to the MGC. 10250 The MGC waits for the UserB to go offhook. Once the UserB goes offhook, 10251 MG2 reports the notification of the offhook event to the MGC. 10253 Step 13 10254 MG2 to MGC: 10255 MEGACO/1 [207.176.47.89]: 26000 10256 Transaction = 3000 { 10257 Context = 2 { 10258 Notify = TermB {ObservedEvents =1234 { 10259 20000202T10020000:al/of}} 10260 } 10261 } 10262 The MGC responds to the MG2 with the Notify response. 10264 Step 14 10265 MGC to MG2: 10266 MEGACO/1 [216.33.33.61]: 27000 10267 Reply = 3000 { 10268 Context = 2 {Notify = TermB} 10269 } 10270 The MGC generates a transaction towards MG2 with two commands in one 10271 action. It changes the mode of both the terminations to sendrecv. The 10272 Signal descriptor of the Modify command for the first termination, 10273 stops the ring signal already applied on the termination and the event 10274 descriptor lists the onhook event. 10276 Step 15: 10277 MGC to MG2: 10278 MEGACO/1 [216.33.33.61]: 27000 10279 Transaction = 1238 { 10280 Context = 2 { 10281 Modify = TermB { 10282 Signals { } ; to turn off ringing 10283 Events = 1235 {al/on}, 10284 Media { 10285 LocalControl { 10286 Mode = SendRecv, 10287 } 10288 } 10289 } 10290 Modify = EphB{ 10291 Media { 10292 LocalControl { 10293 Mode = SendRecv, 10294 } 10295 } 10296 } 10297 } 10299 The MG2 responds to the request from MGC. 10301 Step 16 10302 MG2 to MGC: 10303 MEGACO/1 [207.176.47.89]: 26000 10304 Reply = 1238 { 10305 Context = 2 {Modify = TermB , Modify = EphB} 10306 } 10308 The MGC generates a message to the MG1 to stop the ringback tone and to 10309 report the remote SDP information for the ephemeral termination EphA. 10310 The mode of the two terminations TermA and EphA is set to send receive. 10312 Step 17 10313 MGC to MG1: 10314 MEGACO/1 [216.33.33.61]: 27000 10315 Transaction = 1239 { 10316 Context = 1 { 10317 Modify = TermA { 10318 Media { 10319 LocalControl { 10320 Mode = sendrecv} 10321 } 10322 } 10323 Signals { } 10324 }, 10325 Modify = EphA { 10326 Media { 10327 LocalControl { 10328 Mode = sendrecv} 10329 Remote { 10330 v=0 10331 o=- 2890844525 2890842816 IN IP4 207.176.47.89 10332 s=- 10333 t= 00 10334 c=IN IP4 207.176.47.90 10335 m=audio 40000 RTP/AVP 4 10336 } 10337 } ; RTP profile for G723 is 4 10338 } 10339 } 10340 } 10341 } 10342 The empty signal descriptor in the Modify command for termination 10343 TermA, stops the ringback tone at the calling end. The remote SDP 10344 information is updated for the ephemeral termination EphA. The mode is 10345 changed to send receive. MG1 responds to the MGC with the response for 10346 the Modify commands. 10348 Step 18 10349 MG1 to MGC: 10350 MEGACO/1 [209.110.59.34]: 25000 10351 Reply = 1239 { 10352 Context = 1 {Modify = TermA, Modify = EphA} 10353 } 10354 The two users can exchange media as the RTP streams are made 10355 bi-directional. Now UserC goes offhook to initiate a call towards 10356 UserB. The Residential gateway reports the Offhook event to MGC through 10357 the Notify message. 10359 Step 19 10360 MG3 to MGC: 10361 MEGACO/1 [209.110.60.35]:25000 10362 Transaction = 4000 { 10363 Context = - { 10364 Notify = TermC {ObservedEvents =1111 { 10365 20040202T10000000:al/of}} 10366 } 10367 } 10369 MGC generates the Notify response. 10371 Step 20 10372 MGC to MG3: 10373 MEGACO/1 [216.33.33.61]: 27000 10374 Reply = 4000 { 10375 Context = - {Notify = TermC} 10376 } 10378 The MGC in the following command issues a MODIFY command. The Modify 10379 command contains a signal descriptor for the application of dial tone 10380 to the user. The digit map descriptor here is used to configure a 10381 digit map on the termination. The digit map name used in the example is 10382 Dmap1 and the dial patter is 2XXX. The event descriptor lists digit map 10383 completion event of the DTMF detection package and onhook of the analog 10384 line supervision package. The request id specified in the event 10385 descriptor is 1112. 10387 Step 21 10388 MGC to MG3: 10389 MEGACO/1 [216.33.33.61]: 27000 10390 Transaction = 1240 { 10391 Context = - { 10392 Modify = TermC { 10393 Signals {cg/dt}, 10394 DigitMap= Dmap1{(2XXX)} 10395 Events = 1112 { 10396 al/on, dd/ce {DigitMap=Dmap1} 10397 }, 10398 } 10399 } 10400 } 10402 MG after receiving the Modify command after validation responds to the 10403 MGC and starts processing the descriptors listed. 10405 Step 22 10406 MG3 to MGC: 10407 MEGACO/1 [209.110.60.35]: 25000 10408 Reply = 1240 { 10409 Context = - {Modify = TermC} 10410 } 10411 The Media gateway applies dial tone and waits for the user to enter the 10412 digits. The UserC dials digits 2992. The same is reported to MGC 10413 through the Notify command. 10415 Step 23 10416 MG3 to MGC: 10417 MEGACO/1 [209.110.60.35]: 25000 10418 Transaction = 4001 { 10419 Context = - { 10420 Notify = TermC {ObservedEvents =1112 { 10421 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 10422 } 10423 } 10425 MGC after receiving the Notify command responds back with the Notify 10426 response. 10428 Step 24 10429 MGC to MG3: 10430 MEGACO/1 [216.33.33.61]: 27000 10431 Reply = 4001 { 10432 Context = - {Notify = TermC} 10433 } 10435 The MGC after analyzing the finds that another call is waiting for 10436 UserB. Before generating any further commands to UserB, MGC generates 10437 ADD command for physical and to create ephemeral termin 10438 ation towards 10439 UserC in RGW3. In the Remote SDP information MGC provides the Local 10440 SDP information of UserB. The Local SDP information of UserC is left 10441 underspecified to enable the RGW3 choose those values. 10443 Step 25 10444 MGC to MG3: 10445 MEGACO/1 [216.33.33.61]:27000 10446 Transaction = 1241 { 10447 Context = $ { 10448 Add = TermC { Media { 10449 LocalControl {Mode = Receiveonly} }, 10450 Signals {al/rt} 10451 Events=1234{al/on}, 10452 }, 10453 Add = $ {Media { 10454 LocalControl { 10455 Mode = Receiveonly, 10456 }, 10457 Local { 10458 v=0 10459 c=IN IP4 $ 10460 m=audio $ RTP/AVP 4 10462 }, 10463 Remote { 10464 v=0 10465 o=- 2890844525 2890842816 IN IP4 207.176.47.89 10466 s=- 10467 t= 00 10468 c=IN IP4 207.176.47.90 10469 m=audio 40000 RTP/AVP 4 10470 } ; RTP profile for G.723 is 4 10471 } 10472 } 10473 } 10474 } 10475 } 10477 MG3 after receiving the new transaction from MGC starts processing it. 10478 It creates a new context with contextID 3. It adds the physical 10479 termination TermC to that context and start processing the descriptor 10480 specified in the command. The signal descriptor lists "ringback" 10481 signal to be applied on the termination. The event descriptor lists 10482 the off hook event. The RGW3 creates a ephemeral termination with 10483 TerminationId EphC. The local information is under-specified from the 10484 MGC. The MG allocates the necessary resources for processing the media 10485 descriptor for the ephemeral termination. The MG responds to the MGC by 10486 specifying the IP address reserved for the local connection. In this 10487 example MG3 reserves IP address 192.168.0.160 and port number 50000. 10488 The MG3 responds to MGC with the following transaction reply. 10490 Step 26 10491 MG3 to MGC: 10492 MEGACO/1 [209.110.60.35]: 25000 10493 Reply = 1241 { 10494 Context = 3 { 10495 Add = TermC, 10496 Add = EphC{ 10497 Media { 10498 Local { 10499 v=0 10500 o=- 2890844525 2890842816 IN IP4 209.110.60.35 10501 s=- 10502 t= 00 10503 c=IN IP4 192.168.0.160 10504 m=audio 50000 RTP/AVP 4 10505 } 10506 } ; RTP profile for G723 is 4 10507 } 10508 } 10509 } 10511 If generates a Modify command to the UserB with call waiting tone in 10512 the Signal Descriptor. 10514 Step 27 10515 MGC to MG2: 10516 MEGACO/1 [216.33.33.61]:26000 10517 Transaction = 1242 { 10518 Context = 2 { 10519 Modify = TermB { Media { 10520 LocalControl {Mode = SendRecv} }, 10521 Signals {cg/cw} 10522 Events=1234{al/fl, al/on}, 10523 } 10524 } 10525 MG2 generates the response for the Modify command generated by MGC. 10526 Step 28 10527 MG2 to MGC: 10528 MEGACO/1 [207.176.47.89]:26000 10529 Reply = 1242 { 10530 Context = 2 { 10531 Modify= TermB } 10532 } 10533 } 10535 The UserB press flash button on the phone and the Residential gateway 10536 generates Notify command towards the MGC. 10538 Step 29 10539 MG2 to MGC: 10540 MEGACO/1 [207.176.47.89]:26000 10541 Transaction = 3001 { 10542 Context = 2 { 10543 Notify = TermB {ObservedEvents =1234 { 10544 20040202T10000000:al/fl}} 10545 } 10546 } 10548 MGC generates the Notify response and responds with further messages 10549 towards the MG that generated the Notify command. 10551 Step 30 10552 MGC to MG2: 10553 MEGACO/1 [216.33.33.61]: 27000 10554 Reply = 3001 { 10555 Context = 2 {Notify = TermB} 10556 } 10557 The MGC now is aware that the UserB should be in voice conversation 10558 with UserC instead of UserA. Even though not shown explicitly a message is 10559 sent to UserA to set the modes of both physical and ephemeral terminations 10560 to recvonly, thus ensuring that EphA remote descriptor even tough pointing 10561 to UserB, doesnt generate any media. The MGC now has to update the remote SDP 10562 information of UserC. Such that any the same local SDP information is 10563 used by UserB to continue calling UserC. The Local SDP information of 10564 UserC is provided as the remote SDP information to UserB. Since the 10565 Ephemeral termination is already in context, the Modify command is 10566 used by MGC to update the remote SDP information. 10568 Step 31 10569 MGC to MG2: 10570 MEGACO/1 [216.33.33.61]: 27000 10571 Transaction = 1243 { 10572 Context = 2 { 10573 Modify = TermB { 10574 Media { 10575 LocalControl { 10576 Mode = sendrecv} 10577 } 10578 } 10579 Signals { } 10580 }, 10581 Modify = EphB { 10582 Media { 10583 LocalControl { 10584 Mode = sendrecv} 10585 Remote { 10586 v=0 10587 o=- 2890844525 2890842816 IN IP4 209.110.60.35 10588 s=- 10589 t= 00 10590 c=IN IP4 192.168.0.160 10591 m=audio 50000 RTP/AVP 4 10592 } 10593 } ; RTP profile for G723 is 4 10594 } 10595 } 10596 } 10597 } 10598 The empty signal descriptor in the Modify command for termination TermB, 10599 stop the Call waiting tone at the calling end. The remote SDP 10600 information is updated for the ephemeral termination EphB. The mode is 10601 changed to send receive. MG2 responds to the MGC with the response for 10602 the Modify commands. 10604 Step 32 10605 MG2 to MGC: 10606 MEGACO/1 [207.176.47.89]: 26000 10607 Reply = 1243 { 10608 Context = 2 {Modify = TermB, Modify = EphB} 10609 } 10610 The MGC now generates a Modify command to change the mode of the 10611 termination from receive only to send receive. At the same time MGC 10612 also sends an empty signal descriptor to stop the ring back tone that 10613 was earlier applied on termination TermC of UserC. 10615 Step 33 10616 MGC to MG3: 10617 MEGACO/1 [216.33.33.61]: 27000 10618 Transaction = 1244 { 10619 Context = 3 { 10620 Modify = TermC { 10621 Media { 10622 LocalControl { 10623 Mode = sendrecv} 10624 } 10625 } 10626 Signals { } 10627 }, 10628 Modify = EphC { 10629 Media { 10630 LocalControl { 10631 Mode = sendrecv} 10632 } 10634 } 10635 } 10636 } 10637 The empty signal descriptor in the Modify command for termination 10638 TermC, stop the ringback tone at the calling end. The mode is changed 10639 to send receive. MG3 responds to the MGC with the response for the 10640 Modify commands. 10642 Step 34 10643 MG3 to MGC: 10644 MEGACO/1 [209.110.60.34]: 25000 10645 Reply = 1244 { 10646 Context = 3 {Modify = TermC, Modify = EphC} 10647 } 10648 Now the UserB and UserC are connected (through RTP Media). After the 10649 conversation in the example UserC goes onhook to termination its call 10650 with UserB. The Onhook event is reported to MGC though the Notify 10651 command. 10653 Step 35 10654 MG3 to MGC: 10655 MEGACO/1 [209.110.60.34]:25000 10656 Transaction = 4002 { 10657 Context = 3 { 10658 Notify = TermC {ObservedEvents =1234 { 10659 20050202T10030000:al/on} 10660 } 10661 } 10662 } 10663 The MGC responds to the MG3s Notify message. 10665 Step 36 10666 MGC to RGW3: 10667 MEGACO/1 [216.33.33.61]:27000 10668 Reply = 4002 { 10669 Context = 3 { 10670 Notify = TermC 10671 } 10672 } 10674 The MGC generates Subtract command towards RGW3. 10676 Step 37 10677 MGC to MG3: 10678 MEGACO/1 [216.33.33.61]: 27000 10679 Transaction = 1245 { 10680 Context = 3 { 10681 Subtract = TermC {Audit{ }}, 10682 Subtract = EphC {Audit{Statistics}} 10683 } 10684 } 10685 The MG3 responds to the subtract commands generated by MGC. 10687 Step 10688 38 10689 MG3 to MGC: 10690 MEGACO/1 [209.110.59.35]:25000 10691 Reply = 1245 { 10692 Context = 3 { 10693 Subtract = TermC 10694 Subtract = EphC { 10695 Statistics { 10696 rtp/ps=987, ; packets sent 10697 nt/os=65432, ; octets sent 10698 rtp/pr=1234, ; packets received 10699 nt/or=56789, ; octets received 10700 rtp/pl=10, ; % packets lost 10701 rtp/jit=30, 10702 rtp/delay=30 ; average latency 10703 } 10704 } 10705 } 10706 } 10708 The MGC generates a Modify command towards the RGW2 for applying busy 10709 tone to the called subscriber. The mode of both terminations is set 10710 to receive only. 10712 Step 39 10713 MGC to RGW2: 10714 MEGACO/1 [216.33.33.61]: 27000 10715 Transaction = 1246 { 10716 Context = 2 { 10717 Modify = TermB { 10718 Signals {cg/bt} 10719 Events = 1235 { al/fl, al/on } 10720 Media { 10721 LocalControl { 10722 Mode = recvonly} 10723 } 10724 }, 10725 Modify = EphB { 10726 Media { 10727 LocalControl { 10728 Mode = recvonly} 10729 } 10731 } 10732 } 10733 } 10734 } 10735 The MG2 responds to this modify request. 10737 Step 40 10738 MG2 to MGC: 10739 MEGACO/1 [207.176.47.89]: 26000 10740 Reply = 1246 { 10741 Context = 2 { 10742 Modify= TermB, Modify = EphB} 10743 } 10744 The User B press flash to continue its call with UserA. The flash event 10745 is reported to MGC in the Notify command. 10747 Step 41 10748 MG2 to MGC: 10749 MEGACO/1 [207.176.47.89]:26000 10750 Transaction = 3002 { 10751 Context = 2 { 10752 Notify = TermB {ObservedEvents =1235 { 10753 20060202T10000000:al/fl}} 10754 } 10755 } 10757 MGC generates the Notify response and responds with further messages 10758 towards the MG that generated the Notify command. 10760 Step 42 10761 MGC to MG2: 10762 MEGACO/1 [216.33.33.61]: 27000 10763 Reply = 3002 { 10764 Context = 2 {Notify = TermB} 10765 } 10766 The MGC now generates a Modify command towards the UserB with the 10767 Local SDP information of UserA as Remote SDP information for the 10768 ephemeral termination EphB. This enables UserB to continue the call 10769 with UserA. 10771 Step 43 10772 MGC to MG2: 10773 MEGACO/1 [216.33.33.61]: 27000 10774 Transaction = 1247 { 10775 Context = 2 { 10776 Modify = TermB { 10777 Media { 10778 LocalControl { 10779 Mode = sendrecv} 10780 } 10781 } 10782 Signals { } 10783 }, 10784 Modify = EphB { 10785 Media { 10786 LocalControl { 10787 Mode = sendrecv} 10788 Remote { 10789 v=0 10790 o=- 2890844525 2890842816 IN IP4 209.110.59.34 10791 s=- 10792 t= 00 10793 c=IN IP4 209.110.59.33 10794 m=audio 30000 RTP/AVP 4 10795 } 10796 } ; RTP profile for G723 is 4 10797 } 10798 } 10799 } 10800 } 10801 The empty signal descriptor in the Modify command for termination 10802 TermB, stop the busy tone at the calling end. The remote SDP 10803 information is updated for the ephemeral termination EphB. The mode is 10804 changed to send receive. MG2 responds to the MGC with the response for 10805 the Modify commands. 10807 Step 44 10808 MG2 to MGC: 10809 MEGACO/1 [207.176.47.89]: 26000 10810 Reply = 1247 { 10811 Context = 2 {Modify = TermB, Modify = EphB} 10812 } 10813 The UserB and UserA can continue their conversation. The call can be 10814 tear down either by UserA or UserB. In this example we assume that 10815 UserA terminates the Call. The UserA goes onhook and the users action 10816 is reported to MGC using the Notify command. 10818 Step 45 10819 RGW1 to MGC: 10820 MEGACO/1 [209.110.59.34]:25000 10821 Transaction = 2002 { 10822 Context = 1 { 10823 Notify = TermA {ObservedEvents =1112 { 10824 20010202T10030000:al/on} 10825 } 10826 } 10828 } 10829 The MGC responds to the MG1s Notify message. 10831 Step 46 10832 MGC to RGW1: 10833 MEGACO/1 [216.33.33.61]:27000 10834 Reply = 2002 { 10835 Context = 1 { 10836 Notify = TermA 10837 } 10838 } 10840 The MGC generates a Modify command towards the RGW2 for applying busy 10841 tone to the called subscriber. The mode of both terminations is set to 10842 receive only. 10844 Step 47 10845 MGC to RGW2: 10846 MEGACO/1 [216.33.33.61]: 27000 10847 Transaction = 1248 { 10848 Context = 2 { 10849 Modify = TermB { 10850 Signals {cg/bt} 10851 Media { 10852 LocalControl { 10853 Mode = recvonly} 10854 } 10855 }, 10856 Modify = EphB { 10857 Media { 10858 LocalControl { 10859 Mode = recvonly} 10860 } 10861 } 10862 } 10863 } 10864 } 10866 The MG2 responds to this modify request. 10868 Step 48 10869 MG2 to MGC: 10870 MEGACO/1 [207.176.47.89]: 26000 10871 Reply = 1248 { 10872 Context = 2 { 10873 Modify= TermB, Modify = EphB} 10874 } 10876 The MGC generates transactions with two subtracts commands one for 10877 physical and other for ephemeral terminations. The MGC does the same 10878 for both the Contexts one at RGW1 and the other at RGW2. 10880 Step 49: 10881 MGC to MG1 10882 MEGACO/1 [216.33.33.61]: 27000 10883 Transaction = 1249 { 10884 Context = 1 { 10885 Subtract = TermA {Audit {}}, 10886 Subtract = EphA {Audit {Statistics}} 10887 } 10888 } 10889 The MG subtracts the two terminations from the context. The context 10890 itself is deleted with the subtract of the last termination from it. 10891 The MG1 responds to this transaction from MGC with statistics on 10892 ephemeral termination. 10894 Step 50 10895 MG1 to MGC: 10896 MEGACO/1 [209.110.59.34]:25000 10897 Reply = 1249 { 10898 Context = 1 { 10899 Subtract = TermA 10900 Subtract = EphA { 10901 Statistics { 10902 rtp/ps=1234, ; packets sent 10903 nt/os=56789, ; octets sent 10904 rtp/pr=987, ; packets received 10905 nt/or=65432, ; octets received 10906 rtp/pl=10, ; % packets lost 10907 rtp/jit=30, 10908 rtp/delay=30 ; average latency 10909 } 10910 } 10911 } 10912 } 10914 The UserB after hearing the busy tone goes onhook, the same is 10915 recognized by the Media gateway and generates Notify command towards 10916 the MGC. 10918 Step 51 10919 MG2 to MGC: 10920 MEGACO/1 [207.176.47.89]:26000 10921 Transaction = 3003 { 10922 Context = 2 { 10923 Notify = TermB {ObservedEvents =1234 { 10924 20060202T10000000:al/on}} 10925 } 10926 } 10928 MGC generates the Notify response and responds with further messages 10929 towards the MG that generated the Notify command. 10931 Step 52 10932 MGC to MG2: 10933 MEGACO/1 [216.33.33.61]: 27000 10934 Reply = 3003 { 10935 Context = 2 {Notify = TermB} 10936 } 10938 The MGC then generates subtract commands towards RGW2. 10940 Step 53 10941 MGC to MG2: 10942 MEGACO/1 [216.33.33.61]: 27000 10943 Transaction = 1250 { 10944 Context = 2 { 10945 Subtract = TermB {Audit{ }}, 10946 Subtract = EphB {Audit{Statistics}} 10947 } 10948 } 10949 The MG2 responds to the subtract commands generated by MGC. 10951 Step 54 10952 MG2 to MGC: 10953 MEGACO/1 [207.176.47.89]: 26000 10954 Reply = 1250 { 10955 Context = 2 { 10956 Subtract = TermB 10957 Subtract = EphB { 10958 Statistics { 10959 rtp/ps=987, ; packets sent 10960 nt/os=65432, ; octets sent 10961 rtp/pr=1234, ; packets received 10962 nt/or=56789, ; octets received 10963 rtp/pl=10, ; % packets lost 10964 rtp/jit=30, 10965 rtp/delay=30 ; average latency 10966 } 10967 } 10968 } 10969 } 10970 The MGC generates the message as shown in step 1 to all the Media Gateways, 10971 to enable 10972 the users to participate/initiate in further calls. 10974 9. Conferencing 10976 A Media Gateway optionally performs media conferencing. Media Gateways 10977 that support multipoint conferences might allow three or more 10978 terminations in a context. In this section we will illustrate 10979 conferencing between three users. These call flows makes use of the 10980 Topology descriptor. A topology descriptor is used to specify flow 10981 directions between terminations in a Context. 10983 _____________________________________________________________________ 10984 | | | 10985 MG1 | MGC | MG2 | MG3 10986 _________________|_______________|________________|____________________ 10987 | | | | 10988 |<----------------|-------------->| | 10989 |Initial Modify | Initial Modify| | 10990 | |-------------------------------->| 10991 | | Initial Modify | 10992 |---------------->|<--------------| | 10993 |Modify Response | Modify Resp | | 10994 | |<--------------------------------| 10995 | | Modify Response | 10996 |---------------->| | | 10997 | Notify OffHook | | | 10998 |<----------------| | | 10999 |Notify Response | | | 11000 |<----------------| | | 11001 |Modify ED:dd/cd,al/on SD:cg/dt | | 11002 <-----|---------------->| | | 11003 Dial | Modify Resp | | | 11004 Tone | | | | 11005 ------>| | | | 11006 Digits |---------------->| | | 11007 |Notify Digits | | | 11008 |<----------------| | | 11009 |Notify Response | | | 11010 |<----------------| | | 11011 | Add Phy | | | 11012 |Add $ Local Unspecified | | 11013 | | | | 11014 | | | | 11015 |---------------->| | | 11016 |Add Phy Resp | | | 11017 |Add EphAResp Local specified | | 11018 | |-------------->| | 11019 | |Add TermB SD: cg/ri | 11020 | |Add $ Local unspecified Remote Specified 11021 | |-------------->| | 11022 | | Add Phy Resp | | 11023 | |Add EphB Resp Local Specified | 11024 |<----------------| | | 11025 | Modify TermA SD: cg/rt | | 11026 <------|---------------->| | | 11027 ring | Modify TermA Resp | | 11028 back | |<--------------| | 11029 tone | | Notify TermB OE:offhook | 11030 | |-------------->| | 11031 | |Notify Resp TermB | 11032 |<----------------| | | 11033 | Modify EphA Remote Specified | | 11034 |---------------->| | | 11035 | Modify Resp | | | 11036 |/-------------------------------\| | 11037 | RTP MEDIA | | 11038 |\-------------------------------/| | 11039 | |<--------------| | 11040 | | Notify Flash | | 11041 | |-------------->| | 11042 |<----------------| Notify Resp | | 11043 | Modify RecvOnly | ---------->| | 11044 |---------------->| DialTone | | 11045 | Modify Resp |<--------------| | 11046 | | Notify Digits | | 11047 | |-------------->| | 11048 | | Notify Resp | | 11049 | |-------------------------------->| 11050 | | Add TermC | 11051 | | Add $ Local Unspecified Remote Specified 11052 | |<--------------------------------| 11053 | | Add Phy Resp Add EphC Resp Local Specified 11054 | |-------------->| | 11055 | | Modify Ringback tone | 11056 | |<--------------| | 11057 | | Modify Resp | | 11058 | |<--------------------------------| 11059 | | Notify OffHook | 11060 | |-------------------------------->| 11061 | | Notify Resp | 11062 | |-------------->| | 11063 | | Modify EphBRemote | 11064 | |<--------------| | 11065 | | Modify EphB Resp | 11066 | |/-------------------------------\| 11067 | | RTP Media | 11068 | |\-------------------------------/| 11069 | |<--------------| | 11070 | | Notify Flash | | 11071 | |-------------->| | 11072 | | Notify Resp | | 11073 |<----------------| | | 11074 | Add $ Local unspecified | | 11075 |---------------->| | | 11076 | Add EphD Resp | | | 11077 | |-------------------------------->| 11078 | | Add $ Local unspecified. Remote specified 11079 | |<--------------------------------| 11080 | | Add EphF Resp Local specified 11081 |<----------------| | | 11082 | Mod EphD Remote specified | | 11083 |---------------->| | | 11084 | Mod EphD Resp | | | 11085 | |-------------->| | 11086 | | Add $ Local unspecified remote specified 11087 | |<--------------| | 11088 | | Add EphE Resp | | 11089 |<----------------| | | 11090 | Mod EphA | | | 11091 |---------------->| | | 11092 | Mod EphA Resp | | | 11093 | | / \ | 11094 | | | | | 11095 |/------------------------------- ---------------\| 11096 | RTP MEDIA | 11097 |\-------------------------------------------------/| 11098 | |<---- 11099 ----------| | 11100 | | Notify OnHook | | 11101 | |-------------->| | 11102 | | Notify Resp | | 11103 |<----------------| | | 11104 | Sub EphA |-------------->| | 11105 |---------------->| Sub EphB,EphE | | 11106 | Sub EphA Resp |<--------------| | 11107 | statsitics | Sub EphB Resp Statistics | 11108 | | Sub EphE Resp Statistics | 11109 | |-------------------------------->| 11110 | | Sub EphC | 11111 | |<--------------------------------| 11112 | | Sub EphC Resp statistics | 11113 |/-------------------------------------------------\| 11114 | RTP MEDIA | 11115 |\-------------------------------------------------/| 11116 | |<--------------------------------| 11117 | | Notify OnHook | 11118 | |-------------------------------->| 11119 | | Notify Resp | 11120 |<----------------| | | 11121 | Modify Phy busyTone | | 11122 |---------------->| | | 11123 | Modify Resp | | | 11124 | |-------------------------------->| 11125 | | Sub Phy, Sub EphF | 11126 | |<--------------------------------| 11127 | | Sub Phy Resp | 11128 | | Sub EphF Resp Statistics| 11129 |---------------->| | | 11130 | Notify OnHook | | | 11131 |<----------------| | | 11132 | Notify Resp | | | 11133 |<----------------| | | 11134 | Sub Phy | | | 11135 | Sub EphD | | | 11136 |---------------->| | | 11137 | Sub Phy Resp | | | 11138 | Sub EphD Resp Statistics | | 11139 _______|_________________|_______________|_________________|____________ 11141 The conferencing feature in PSTN allows a user speak with 11142 multiple users at the same time. This feature 11143 should be supported by MGC so that it is capable of generating required 11144 messages towards MG. In this example we assume that the MGC is capable 11145 of supporting Conferencing. UserB, the called party, initially receives 11146 a call from UserA. For adding UserC, UserB press flash hook and dials 11147 UserC number and after UserC answers the call goes flash hook again to 11148 connect UserA and UserC. Now UserA, User B and UserC are in the call. 11150 The MGC generates the Modify message towards all the three Residential 11151 gateways to check for off hook on the terminations. (A wildcard 11152 command may also be used in this scenario but for simplicity we consider 11153 only command to specific terminations). We are not considering the 11154 embedded signal and event descriptors here. The MGC in 11155 NULL context generates the command to the specific termination TermA. 11156 The off hook event of the analog supervision package is used here. The 11157 request identifier specified here in the example is 1111. The mode of 11158 the termination is set to receive only. The stream parameter is used 11159 with only the Local control descriptor. 11161 Step 1 11162 MGC to RGW1: 11163 MEGACO/1 [216.33.33.61]:27000 11164 Transaction = 1234 { 11165 Context = - { 11166 Modify = TermA { 11167 Media { 11168 LocalControl { 11169 Mode = ReceiveOnly} 11170 } , 11171 Events = 1111 {al/of} 11172 } 11173 } 11174 } 11176 MG after receiving the command from MGC accepts it and responds with 11177 the transaction reply. Here only MG1 is shown to generate the 11178 response. In fact all the RGW generates the response. 11180 Step 2 11182 MG1 to MGC: 11183 MEGACO/1 [209.110.59.34]:25000 11184 Reply = 1234 { 11185 Context = - {Modify = TermA} 11186 } 11188 In this example User A goes off hook. This event is detected by the 11189 RGW1 and constructs the Notify message to the MGC. The MG uses the same 11190 request id (1111) sent by the MGC in its initial command. The timestamp 11191 of the event detected is also passed as a parameter to the observed event. 11193 Step 3 11194 MG1 to MGC: 11195 MEGACO/1 [209.110.59.34]:25000 11196 Transaction = 2000 { 11197 Context = - { 11198 Notify = TermA {ObservedEvents =1111 { 11199 20010202T10000000:al/of}} 11200 } 11201 } 11203 MGC generates the Notify response and responds with further messages 11204 towards the MG that generated the Notify command. 11206 Step 4 11207 MGC to MG1: 11208 MEGACO/1 [216.33.33.61]: 27000 11209 Reply = 2000 { 11210 Context = - {Notify = TermA} 11211 } 11213 The MGC in the following command issues a MODIFY command. The Modify 11214 command contains a signal descriptor for the application of dial tone 11215 to the user. The digit map descriptor here is used to configure a digit 11216 map on the termination. The digit map name used in the example is Dmap1 11217 and the dial patter is 2XXX. The event descriptor lists digit map 11218 completion event of the DTMF detection package and onhook of the 11219 analog line supervision package. The request id specified in the event 11220 descriptor is 1112. 11222 Step 5 11223 MGC to MG1: 11224 MEGACO/1 [216.33.33.61]: 27000 11225 Transaction = 1235 { 11226 Context = - { 11227 Modify = TermA { 11228 Signals {cg/dt}, 11229 DigitMap= Dmap1{(2XXX)} 11230 Events = 1112 { 11231 al/on, dd/ce {DigitMap=Dmap1} 11232 }, 11233 } 11234 } 11235 } 11237 MG after validating the Modify command responds to the MGC and starts 11238 processing the descriptors listed. 11240 Step 6 11241 MG1 to MGC: 11242 MEGACO/1 [209.110.59.34]: 25000 11243 Reply = 1235 { 11244 Context = - {Modify = TermA} 11245 } 11247 The descriptors are processed in the order that is specified by the MGC. 11248 In this example the order of descriptor is signal descriptor, digit map 11249 descriptor followed by Events descriptor. The MG first processes the 11250 signal descriptor. The dial tone is applied to the Termination 11251 specified. The Digit map is updated in the Database of the termination. 11252 The Digit map will be made ACTIVE on the termination as the digit map 11253 completion event is listed in the events descriptor with the digit map 11254 name. A digit map is activated whenever a new event descriptor is 11255 applied to the termination or embedded event descriptor is activated, 11256 and that event descriptor contains a digit map completion event which 11257 itself may contain a digit map parameter. UserA after receiving the dial 11258 tone starts dialing digits. In this example we will not dwell into the 11259 different possible cases of digit dialing by the user.The digits dialed 11260 by the user match with the digit map pattern. 11261 Lets assume that the user has dialed 2992. MG detects the digits 11262 dialed and reports the same as parameter to the digit map completion 11263 event. A notify command is generated from MG1 to MGC. The MG again 11264 used the same request identifier as specified by the MGC. 11266 Step 7 11267 MG1 to MGC: 11268 MEGACO/1 [209 11269 .110.59.34]: 25000 11270 Transaction = 2001 { 11271 Context = - { 11272 Notify = TermA {ObservedEvents =1112 { 11273 20010202T10010000:dd/ce{ds="2992",Meth=FM}}} 11274 } 11275 } 11277 MGC after receiving the Notify command responds back with the Notify 11278 response. 11280 Step 8 11281 MGC to MG1: 11282 MEGACO/1 [216.33.33.61]: 27000 11283 Reply = 2001 { 11284 Context = - {Notify = TermA} 11285 } 11287 MGC after receiving the Notify command starts analyzing the dialed 11288 digits. In this example the called subscriber is connected to the 11289 RGW2, which is again controlled by the same MGC. The MGC generates a 11290 transaction with two commands clubbed into the same Action. The first 11291 command is to create a new context and add the physical termination 11292 TermA into it. As the MGC is aware that the destination user 11293 UserB is free it instructs MG1 to apply ringback tone to the 11294 termination of UserA. The second command is generated to create an 11295 ephemeral termination and add the created termination in the same 11296 context that was created as a result of the earlier command. Here we 11297 assumed a single set of SDP information indicating that Reserve group 11298 is not used. The Reserve Value feature is also not used. 11300 Step 9 11301 MGC to MG1: 11302 MEGACO/1 [216.33.33.61]: 27000 11303 Transaction = 1236 { 11304 Context = $ { 11305 Add = TermA { 11306 Signals { cg/rt } 11307 } 11308 Add = $ { 11309 Media { 11310 { 11311 LocalControl { 11312 Mode = ReceiveOnly, 11313 }, 11314 Local { 11315 v=0 11316 c=IN IP4 $ 11317 m=audio $ RTP/AVP 4 11318 } 11319 } 11320 } 11321 } 11322 } 11324 In this example the connection fields IP address, the media field port 11325 number are unspecified. The MG in its response indicates the IPAddress 11326 and port number used. The contextID is also not specified indicating 11327 the creation of a new context. In this example the MG creates a context 11328 with contextID 1. The physical termination TermA is added to context 1. 11329 The mode of the physical termination was earlier set to Receiveonly 11330 and in this message the ephemeral termination is requested to create 11331 with Receiveonly mode. The ephemeral termination created in this 11332 example is EphA. MG responds with the allocated IP address 11333 209.110.59.33 and port number 30000. 11335 Step 10 11336 MG1 to MGC: 11337 MEGACO/1 [209.110.59.34]: 25000 11338 Reply = 1236 { 11339 Context = 1 { 11340 Add = TermA, 11341 Add=EphA{ 11342 Media { 11343 Local { 11344 v=0 11345 o=- 2890844525 2890842816 IN IP4 209.110.59.34 11346 s=- 11347 t= 00 11348 c=IN IP4 209.110.59.33 11349 m=audio 30000 RTP/AVP 4 11350 a=recvonly 11351 } ; RTP profile for G.723 is 4 11352 } 11353 } 11354 } 11355 } 11356 } 11358 MGC generates a similar transaction towards the RGW2. The ContextID 11359 specified in the action is $. The first command adds the physical 11360 termination TermB to the newly created context. The Signal descriptor 11361 for this termination lists the ring signal of the analog line 11362 supervision package. This alerting signal is applied to the 11363 termination of the TermB. The Event descriptor specifies offhook event 11364 of the analog line supervision package. The second Add is meant to 11365 create an ephemeral termination. MGC has the local information for the 11366 ephemeral termination EphA in the RGW1. This information is passed as 11367 remote information to the RGW2. The new ephemeral termination that 11368 will be created will take these parameters as the remote SDP 11369 information. 11371 Step 11 11372 MGC to MG2: 11373 MEGACO/1 [216.33.33.61]:27000 11374 Transaction = 1237 { 11375 Context = $ { 11376 Add = TermB { Media { 11377 LocalControl {Mode = Receiveonly} }, 11378 Signals {al/ri} 11379 Events=1234{al/of}, 11380 }, 11381 Add = $ {Media { 11382 LocalControl { 11383 Mode = Receiveonly, 11384 }, 11385 Local { 11386 v=0 11387 c=IN IP4 $ 11388 m=audio $ RTP/AVP 4 11390 }, 11391 Remote { 11392 v=0 11393 o=- 2890844525 2890842816 IN IP4 209.110.59.34 11394 s=- 11395 t= 00 11396 c=IN IP4 209.110.59.33 11397 m=audio 30000 RTP/AVP 4 11398 } ; RTP profile for G.723 is 4 11399 } 11400 } 11401 } 11402 } 11403 } 11405 MG2 after receiving the new transaction from MGC starts processing it. 11406 It creates a new context with contextID 2. It adds the physical 11407 termination TermB to that context and start processing the descriptor 11408 specified in the command. The signal descriptor lists "ring" signal to 11409 be applied on the termination. The event descriptor lists the off hook 11410 event. The RGW2 creates a ephemeral termination with TerminationId 11411 EphB. The local information is under-specified from the MGC. The MG 11412 allocates the necessary resources for processing the media descriptor 11413 for the ephemeral termination. The MG responds to the MGC by 11414 specifying the IP address reserved for the local connection. In this 11415 example MG2 reserves IP address 207.176.47.90 and port number 40000. 11416 The MG2 responds to MGC with the following transaction reply. 11418 Step 12 11419 MG2 to MGC: 11420 MEGACO/1 [207.176.47.89]: 26000 11421 Reply = 1237 { 11422 Context = 2 { 11423 Add = TermB, 11424 Add = EphB{ 11425 Media { 11426 Local { 11427 v=0 11428 o=- 2890844525 2890842816 IN IP4 207.176.47.89 11429 s=- 11430 t= 00 11431 c=IN IP4 207.176.47.90 11432 m=audio 40000 RTP/AVP 4 11433 } 11434 } ; RTP profile for G723 is 4 11435 } 11436 } 11437 } 11438 The MGC generates a Modify message towards the RGW1 to generate ringback tone 11439 to the calling party user TermA, as the processing of signal descriptor at 11440 RGW2 was successfuly responded by RGW2. The RGW1 generates response for the 11441 Modify command from the MGC. 11443 The MGC waits for the UserB to go offhook. Once the UserB goes offhook, 11444 MG2 reports the notification of the offhook event to the MGC. 11446 Step 13 11447 MG2 to MGC: 11448 MEGACO/1 [207.176.47.89]: 26000 11449 Transaction = 3000 { 11450 Context = 2 { 11451 Notify = TermB {ObservedEvents =1234 { 11452 20000202T10020000:al/of}} 11453 } 11454 } 11455 The MGC responds to the MG2 with the Notify response. 11457 Step 14 11458 MGC to MG2: 11459 MEGACO/1 [216.33.33.61]: 27000 11460 Reply = 3000 { 11461 Context = 2 {Notify = TermB} 11462 } 11463 The MGC generates a transaction towards MG2 with two commands in one 11464 action. It changes the mode of both the terminations to sendrecv. The 11465 Signal descriptor of the Modify command for the first termination, 11466 stops the ring signal already applied on the termination and the event 11467 descriptor lists the onhook event, flash hook and the dd/ce event. 11469 Step 15: 11470 MGC to MG2: 11471 MEGACO/1 [216.33.33.61]: 27000 11472 Transaction = 1238 { 11473 Context = 2 { 11474 Modify = TermB { 11475 Signals { } ; to turn off ringing 11476 Events = 1235 {al/on, al/fl embed { signals cg/dt, events = 1235 11477 { dd/ce{dmap1}, al/on }}}, 11478 Media { 11479 LocalControl { 11480 Mode = SendRecv, 11481 } 11482 } 11483 } 11484 Modify = EphB{ 11485 Media { 11486 LocalControl { 11487 Mode = SendRecv, 11488 } 11489 } 11490 } 11492 Internet-Draft Megaco/H.248 Call flow examples 11493 November2004 11495 } 11497 The MG2 responds to the request from MGC. 11499 Step 16 11500 MG2 to MGC: 11501 MEGACO/1 [207.176.47.89]: 26000 11502 Reply = 1238 { 11503 Context = 2 {Modify = TermB , Modify = EphB} 11504 } 11506 The MGC generates message to the MG1 to stop the ringback tone and to 11507 report the remote SDP information for the ephemeral termination EphA. 11508 The mode of the two terminations TermA and EphA is set to send 11509 receive. 11511 Step 17 11512 MGC to MG1: 11513 MEGACO/1 [216.33.33.61]: 27000 11514 Transaction = 1239 { 11515 Context = 1 { 11516 Modify = TermA { 11517 Media { 11518 LocalControl { 11519 Mode = sendrecv} 11520 } 11521 } 11522 Signals { } 11523 }, 11524 Modify = EphA { 11525 Media { 11526 LocalControl { 11527 Mode = sendrecv} 11528 Remote { 11529 v=0 11530 o=- 2890844525 2890842816 IN IP4 207.176.47.89 11531 s=- 11532 t= 00 11533 c=IN IP4 207.176.47.90 11534 m=audio 40000 RTP/AVP 4 11535 } 11536 } ; RTP profile for G723 is 4 11537 } 11538 } 11539 } 11540 } 11541 The empty signal descriptor in the Modify command for termination 11542 TermA, stop the ringback tone at the calling end. The remote SDP 11543 information is updated for the ephemeral termination EphA. The mode is 11544 changed to send receive. MG1 responds to the MGC with the response for 11545 the Modify commands. 11547 Step 18 11548 MG1 to MGC: 11549 MEGACO/1 [209.110.59.34]: 25000 11550 Reply = 1239 { 11551 Context = 1 {Modify = TermA, Modify = EphA} 11552 } 11553 The two users can exchange media, as the RTP streams are made 11554 bi-directional. The figure below shows the terminations at both in 11555 both the Contexts. 11557 +------------------------------------------------------+ 11558 | RGW1 | 11559 | Context1 | 11560 | +---------------+ +---------------+ | 11561 | | | | | | 11562 | | | | | | 11563 | | Phy A | +-+ | Eph A | | 11564 <---->| |<--->|*|<---->| LocalA |<------> 11565 | | | +-+ | RemoteB | | 11566 | | | | | | 11567 | +---------------+ +---------------+ | 11568 | | 11569 +------------------------------------------------------+ 11571 +------------------------------------------------------+ 11572 | RGW2 | 11573 | Context2 | 11574 | +---------------+ +---------------+ | 11575 | | | | | | 11576 | | | | | | 11577 | | Phy B | +-+ | Eph B | | 11578 <---->| |<--->|*|<---->| LocalB |<------> 11579 | | | +-+ | RemoteA | | 11580 | | | | | | 11581 | +---------------+ +---------------+ | 11582 | | 11583 +------------------------------------------------------+ 11585 The UserB now presses flash to dial the UserC number. The UserB flash 11586 event is reported to MGC using the Notify message. 11588 Step 19 11589 MG2 to MGC: 11590 MEGACO/1 [209.110.59.34]:25000 11591 Transaction = 3001 { 11592 Context = 2 { 11593 Notify = TermB {ObservedEvents =1235 { 11594 20040202T10000000:al/fl}} 11595 } 11596 } 11598 MGC generates the Notify response. 11600 Step 20 11601 MGC to MG2: 11602 MEGACO/1 [216.33.33.61]: 27000 11603 Reply = 3001 { 11604 Context = 2 {Notify = TermB} 11605 } 11606 The UserB gets the dial tone and starts dialing the digits. In this 11607 example the UserB dials the number 2804 of UserC. The dialed digits 11608 are reported to MGC using digit map completion event. The digits are 11609 reported using the Notify command. 11611 Step 21 11612 MG2 to MGC: 11613 MEGACO/1 [209.110.59.34]: 27000 11614 Transaction = 3002 { 11615 Context = 2 { 11616 Notify = TermB {ObservedEvents =1235 { 11617 20040202T10010000:dd/ce{ds="2804",Meth=FM}}} 11618 } 11619 } 11621 MGC after receiving the Notify command responds back with the Notify 11622 response. 11624 Step 22 11625 MGC to MG2: 11626 MEGACO/1 [216.33.33.61]: 27000 11627 Reply = 3002 { 11628 Context = 2 {Notify = TermB} 11629 } 11630 The UserC is alerted with ring signal to indicate that a call is to be 11631 received. The Add command for the physical termination TermC with 11632 signal descriptor allows the ring signal to be applied on the 11633 termination. The ephemeral termination is also requested to be created 11634 with under specified Local SDP information and fully specified Remote 11635 SDP information. 11637 Step 23: 11638 MGC to MG3: 11639 MEGACO/1 [216.33.33.61]: 27000 11640 Transaction = 1240 { 11641 Context = $ { 11642 Add = TermC { 11643 Signals { al/ri } 11644 Events = 1111{ al/of embed { events = 1111{ al/on } } } 11645 } 11646 Add = $ { 11647 Media { 11648 { 11649 LocalControl { 11650 Mode = ReceiveOnly, 11651 }, 11652 Local { 11653 v=0 11654 c=IN IP4 $ 11655 m=audio $ RTP/AVP 4 11656 } 11657 Remote { 11658 v=0 11659 o=- 2890844525 2890842816 IN IP4 207.176.47.89 11660 s=- 11661 t= 00 11662 c=IN IP4 207.176.47.90 11663 m=audio 40000 RTP/AVP 4 11664 } 11665 } ; RTP profile for G723 is 4 11666 } 11667 } 11668 } 11669 } 11671 In this example the SDP local information connection fields IP 11672 address, the media field port numbers are unspecified. The MG in its 11673 response indicates the IPAddress and port number used. The contextID is 11674 also not specified indicating the creation of a new context. In this 11675 example the MG creates a context with contextID 3. The physical 11676 termination TermC is added to context 3. The mode of the physical 11677 termination was earlier set to Receiveonly and in this message the 11678 ephemeral termination is requested to create with Receiveonly mode. 11679 The ephemeral termination created in this example is EphC. MG responds 11680 with the allocated IP address 192.168.0.160 and port number 50000. 11682 Step 24 11683 MG1 to MGC: 11684 MEGACO/1 [209.110.59.34]: 25000 11685 Reply = 1240 { 11686 Context = 3 { 11687 Add = TermC, 11688 Add=EphC{ 11689 Media { 11690 Local { 11691 v=0 11692 o=- 2890844525 2890842816 IN IP4 209.110.59.34 11693 s=- 11694 t= 00 11695 c=IN IP4 192.168.0.160 11696 m=audio 50000 RTP/AVP 4 11697 a=recvonly 11698 } ; RTP profile for G.723 is 4 11699 } 11700 } 11701 } 11702 } 11703 } 11705 The MGC generates ring back tone towards the UserB to indicate that 11706 altering signal has been sent to the called party UserC. 11707 Step 25 11708 MGC to MG2: 11709 MEGACO/1 [216.33.33.61]: 27000 11710 Transaction = 1241 { 11711 Context = 2 { 11712 Modify = TermB { 11713 Signals { cg/rt } 11714 } 11715 } 11716 } 11717 } 11718 The MG2 after receiving the Modify command applies the ring back tone 11719 specified in the signals descriptor. The Modify response is sent back 11720 to MGC. 11722 Step 26 11723 MG2 to MGC: 11724 MEGACO/1 [207.176.47.89]: 26000 11725 Reply = 1241 { 11726 Context = 2 { 11727 Modify= TermB, 11728 } 11729 } 11730 The UserC after receiving the ring signal goes offhook. The offhook 11732 Madhubabu, et al. Informational - Expires 11733 event is reported to MGC in the Notify command. 11735 Step 27 11736 MG3 to MGC: 11737 MEGACO/1 [209.110.59.34]:28000 11738 Transaction = 4001 { 11739 Context = 3 { 11740 Notify = TermC {ObservedEvents =1111 { 11741 20050202T10000000:al/of}} 11742 } 11743 } 11745 MGC generates the Notify response and responds with further messages 11746 towards the MG that generated the Notify command. 11748 Step 28 11749 MGC to MG3: 11750 MEGACO/1 [216.33.33.61]: 27000 11751 Reply = 4001 { 11752 Context = 3 {Notify = TermC} 11753 } 11754 The MGC now updates the UserC connected to the Residential gateway 3 11755 with modify command to change the mode of the terminations set to 11756 sendrecv. 11758 Step 29: 11759 MGC to MG3: 11760 MEGACO/1 [216.33.33.61]: 27000 11761 Transaction = 1242 { 11762 Context = 3 { 11763 Modify = TermC { 11764 Signals { } ; to turn off ringing 11765 Events = 1235 {al/on}, 11766 Media { 11767 LocalControl { 11768 Mode = SendRecv, 11769 } 11770 } 11771 } 11772 Modify = EphC{ 11773 Media { 11774 LocalControl { 11775 Mode = SendRecv, 11776 } 11777 } 11778 } 11779 } 11780 The Residential gateway responds with the Modify response command. 11782 Step 30 11783 MG3 to MGC: 11784 MEGACO/1 [207.176.47.89]: 26000 11785 Reply = 1242 { 11786 Context = 3 {Modify = TermC , Modify = EphC} 11787 } 11788 The MGC now updates the UserB connected to the Residential gateway 2 11789 with the local SDP information of UserC as remote SDP information. The 11790 Modify command with the remote SDP information is sent to RGW2, for 11791 the ephemeral termination. 11793 Step 31 11794 MGC to MG2: 11795 MEGACO/1 [216.33.33.61]: 27000 11796 Transaction = 1243 { 11797 Context = 2 { 11798 Modify = TermB { Event = 1234 { al/fl, al/on }} 11799 Modify = EphB { 11800 Media{ 11801 LocalControl{ mode = sendrecv }, 11802 Remote { 11803 v=0 11804 c=IN IP4 192.168.0.160 11805 m=audio 50000 RTP/AVP 4 11806 } ; RTP profile for G.723 is 4 11807 } 11808 } 11809 } 11810 } 11811 The RGW2 responds with the Modify response. 11813 Step 32 11814 MG2 to MGC: 11815 MEGACO/1 [207.176.47.89]: 28000 11816 Reply = 1243 { 11817 Context = 2 {Modify = TermB, Modify = EphB } 11818 } 11820 The RGW2 updates the remote SDP information and generates the Modify 11821 response towards MGC. The Media path is established between UserB and 11822 UserC. The two users can be in conversation. The following figure shows 11823 the different context created and the terminations in these Contexts. 11825 The MGC then generates a Modify command towards MG1. The UserA mode 11826 is set to Receive only so that UserA doesnt generate RTP towards UserB. 11828 Step 33 11829 MGC to MG1: 11830 MEGACO/1 [216.33.33.61]: 27000 11831 Transaction = 1244 { 11832 Context = 1 { 11833 Modify = TermA { 11834 Media { 11835 LocalControl { 11836 Mode = recvonly} 11837 } 11838 } 11839 Signals { } 11840 }, 11841 Modify = EphA { 11842 Media { 11843 LocalControl { 11844 Mode = recvonly} 11845 } 11846 } 11847 } 11849 Step 34 11850 MG1 to MGC: 11851 MEGACO/1 [209.110.59.34]: 25000 11852 Reply = 1244 { 11853 Context = 1 {Modify = TermA, Modify = EphA} 11854 } 11856 The Ephemeral termination EphB now has the Remote SDP information of 11857 UserC. This enables the media flow between UserB and UserC. UserA, even 11858 though is in valid context, doesn't generate any RTP media. 11860 The UserB after the establishment of RTP media with UserC goes flash 11861 hook to indicate the conference creation with UserA. The Notify event 11862 from RGW2 is reported to MGC using the Notify message. The UserB press 11863 flash button on the phone and the Residential gateway generates Notify 11864 command towards the MGC. 11866 Step 35 11867 MG2 to MGC: 11868 MEGACO/1 [207.176.47.89]: 26000 11869 Transaction = 3003 { 11870 Context = 2 { 11871 Notify = TermB {ObservedEvents =1234 { 11872 20050202T10000000:al/fl}} 11873 } 11874 } 11876 MGC generates the Notify. 11878 Step 36 11879 MGC to MG2: 11880 MEGACO/1 [216.33.33.61]: 27000 11881 Reply = 3003 { 11882 Context = 2 {Notify = TermB} 11883 } 11885 +------------------------------------------------------+ 11886 | RGW1 | 11887 | Context1 | 11888 | +---------------+ +---------------+ | 11889 | | | | | | 11890 | | | | | | 11891 | | Phy A | +-+ | Eph A | | 11892 <---->| |<--->|*|<---->| LocalA |<------ 11893 | | | +-+ | RemoteB | | 11894 | | | | | | 11895 | +---------------+ +---------------+ | 11896 | | 11897 +------------------------------------------------------+ 11899 +------------------------------------------------------+ 11900 | RGW2 | 11901 | Context2 | 11902 | +---------------+ +---------------+ | 11903 | | | | | | 11904 | | | | | | 11905 | | Phy B | +-+ | Eph B | | 11906 <---->| |<--->|*|<---->| LocalB |<------> 11907 | | | +-+ | RemoteC | | 11908 | | | | | | 11909 | +---------------+ +---------------+ | 11910 | | 11911 +------------------------------------------------------+ 11913 +------------------------------------------------------+ 11914 | RGW3 | 11915 | Context3 | 11916 | +---------------+ +---------------+ | 11917 | | | | | | 11918 | | | | | | 11919 | | Phy C | +-+ | Eph C | | 11920 <---->| |<--->|*|<---->| LocalC |<------> 11921 | | | +-+ | RemoteB | | 11922 | | | | | | 11923 | +---------------+ +---------------+ | 11924 | | 11925 +------------------------------------------------------+ 11927 This call flow section illustrates the call between three users. 11928 Already UserB and UserC are connected. The UserA remote SDP information 11929 points to the UserB. Now the MGC has to add one more ephemeral 11930 termination in each of the contexts created at the three different user 11931 Gateways. In this scenario we show that EphA, EphB and EphC are 11932 initially created. EphA of UserA points to EphB of UserB, but since the 11933 mode of the termination is "recvonly", this can be modified as required. 11934 The EphB or UserB is virtually connected to EphC of UserC. The MGC for 11935 connecting UserA and UserC generates Add command towards RGW1 for 11936 creating an Ephemeral termination. After receiving the response of the 11937 Add command indicating the creation of EphD, the MGC passes the local 11938 SDP information of EphD in the Add command towards UserC for creation 11939 of another Ephemeral ter 11940 mination. RGW3 creates Ephemeral Termination 11941 EphF with remote information pointing towards EphD of UserA. The MGC 11942 now after receiving response from UserC for EphF creation "Modifies" 11943 the EphD with the remote SDP information of EphF. Thus connecting the 11944 UserA and UserC. The topology descriptor is used to illustrate the 11945 control of media flows between the terminations in the context. 11947 The MGC generates Add command towards UserB for creating an Ephemeral 11948 termination. The Local SDP information of EphA is passed as remote SDP 11949 information for this newly created termination. After receiving the 11950 response from UserB indicating the successful creation of EphE, the 11951 local SDP information of EphE is passed to UserA as remote SDP 11952 information for EphA in the "Modify" command. UserA's EphA is modified 11953 to point towards the EphE of UserB. Now all the Users have 3 11954 termination in their contexts. Thus enabling them to participate in 11955 conference. The following paragraphs illustrates the different 11956 messages exchanged in detail, to illustrate the addition of new user 11957 in conference. The same can be extended to any number of users but 11958 for simplicity, only 3 users are considered. 11960 The MGC generates an add command towards MG1 for creation of another 11961 ephemeral termination so that the media information is directed towards 11962 UserC. The ephemeral termination is requested to be added in context 1. 11963 The topology descriptor that shows the directions of media flow inside 11965 the context is initially set to ISOLOATE so that there is no media 11966 immediately transferred between these termination within the context. 11968 Step 37 11969 MGC to MG1: 11970 MEGACO/1 [216.33.33.61]: 27000 11971 Transaction = 1244 { 11972 Context = 1 11973 Topology TermA,EphA,isolate, TermA, $, isolate, EphA,$, isolate{ 11974 Add = $ { 11975 Media { 11976 { 11977 LocalControl { 11978 Mode = ReceiveOnly, 11979 }, 11980 Local { 11981 v=0 11982 c=IN IP4 $ 11983 m=audio $ RTP/AVP 4 11984 } 11985 } 11986 } 11987 } 11988 } 11990 The Residential gateway now generates an ephemeral termination, with 11991 newly allocated resources for it. The IP address that is allocated is 11992 192.168.0.155 and the port number is 35000. The response is sent back 11993 to MGC. 11995 Step 38 11996 MG1 to MGC: 11997 MEGACO/1 [209.110.59.34]: 25000 11998 Reply = 1244 { 11999 Context = 1 { 12000 Add=EphD{ 12001 Media { 12002 Local { 12003 v=0 12004 c=IN IP4 192.168.0.155 12005 m=audio 35000 RTP/AVP 4 12006 a=recvonly 12007 } ; RTP profile for G.723 is 4 12008 } 12009 } 12010 } 12011 } 12012 } 12014 The MGC after receiving this information generates another ADD command 12015 towards the Residential gateway 3, such that the UserA SDP information 12016 is indicated to UserC. 12018 Step 39 12019 MGC to MG3: 12020 MEGACO/1 [216.33.33.61]: 27000 12021 Transaction = 1245 { 12022 Context = 3 12023 Topology TermC,EphC,bothway, TermC, $, bothway, EphC,$, bothway { 12024 Add = $ { 12025 Media { 12026 { 12027 LocalControl { 12028 Mode = sendrecv, 12029 }, 12030 Local { 12031 v=0 12032 c=IN IP4 $ 12033 m=audio $ RTP/AVP 4 12034 } 12035 Remote { 12036 v=0 12037 c=IN IP4 192.168.0.155 12038 m=audio 35000 RTP/AVP 4 12039 a=sendrecv 12040 } ; RTP profile for G.723 is 4 12041 } 12042 } 12043 } 12044 } 12046 The Residential gateway now generates an ephemeral termination, with 12047 newly allocated resources for it. The IP address that is allocated is 12048 192.168.0.100 and the port number is 55000. The response is sent back 12049 to MGC. 12051 Step 40 12052 MG3 to MGC: 12053 MEGACO/1 [209.110.59.34]: 25000 12054 Reply = 1245 { 12055 Context = 3 { 12056 Add=EphF{ 12057 Media { 12058 Local { 12059 v=0 12060 c=IN IP4 192.168.0.100 12061 m=audio 55000 RTP/AVP 4 12062 a=recvonly 12063 } ; RTP profile for G.723 is 4 12064 } 12065 } 12066 } 12067 } 12068 } 12069 The MGC after receiving the response from the UserC now indicates the 12070 same information towards the Residential gateway 1. Thus enabling media 12071 flow between the UserA and UserC. 12073 Step 41 12074 MGC to MG1: 12075 MEGACO/1 [216.33.33.61]: 27000 12076 Transaction = 1246 { 12077 Context = 1 12078 Topology TermA,EphA,isolate, TermA, EphD, bothway, EphA,EphD, isolate{ 12079 Modify = EphD { 12080 Media { 12081 { 12082 LocalControl { 12083 Mode = ReceiveOnly, 12084 }, 12085 Remote { 12086 v=0 12087 c=IN IP4 192.168.0.100 12088 m=audio 55000 RTP/AVP 4 12089 } 12090 } 12091 } 12092 } 12093 } 12095 The Residential gateway now generates the Modify response to the MGC. 12097 Step 42 12098 MG1 to MGC: 12099 MEGACO/1 [209.110.59.34]: 25000 12100 Reply = 1246 { 12101 Context = 1 { 12102 Modify=EphD 12103 } 12105 +------------------------------------------------------+ 12106 | RGW1 +---------------+ | 12107 | Context1 | EPHA | | 12108 | +---------------+ | Local A | | 12109 | | |-------~------| Remote B |<-------- 12110 | | | +------| | | 12111 | | Phy A | | +---------------+ | 12112 <---->| | | +---------------+ | 12113 | | | | | EphD | | 12114 | | | +------| Local A |<------> 12115 | | |<------------>| Remote C | | 12116 | +---------------+ +---------------+ | 12117 | | 12118 +------------------------------------------------------+ 12120 +------------------------------------------------------+ 12121 | RGW2 | 12122 | Context2 | 12123 | +---------------+ +---------------+ | 12124 | | | | | | 12125 | | | | | | 12126 | | Phy B | +-+ | Eph B | | 12127 <---->| |<--->|*|<---->| LocalB |<------> 12128 | | | +-+ | RemoteC | | 12129 | | | | | | 12130 | +---------------+ +---------------+ | 12131 | | 12132 +------------------------------------------------------+ 12134 +------------------------------------------------------+ 12135 | RGW3 +---------------+ | 12136 | Context2 | EPHC | | 12137 | +---------------+ | Local C | | 12138 | | |<------------>| Remote B |<-------> 12139 | | | +------>| | | 12140 | | Phy C | | +---------------+ | 12141 <---->| | | +---------------+ | 12142 | | | | | EphF | | 12143 | | | +------>| Local C |<------> 12144 | | |<------------>| Remote A | | 12145 | +---------------+ +---------------+ | 12146 | | 12147 +------------------------------------------------------+ 12149 The UserA an 12150 d UserC are in conversation now. The UserB and UserC were 12151 already in conversation. Now the UserA and UserB need to be connected 12152 through RTP media. The MGC now generates ADD command towards the 12153 UserB of the Residential gateway 2. The Local information of UserA is 12154 indicated as the remote information of the newly created ephemeral 12155 termination. This ephemeral termination is requested to be 12156 added to the earlier context 2 itself. 12158 Step 43 12159 MGC to MG2: 12160 MEGACO/1 [216.33.33.61]: 27000 12161 Transaction = 1247 { 12162 Context = 2 12163 Topology TermB,EphB,bothway, TermB, $, bothway, EphB,$, bothway { 12164 Add = $ { 12165 Media { 12166 { 12167 LocalControl { 12168 Mode = sendrecv, 12169 }, 12170 Local { 12171 v=0 12172 c=IN IP4 $ 12173 m=audio $ RTP/AVP 4 12174 } 12175 Remote { 12176 v=0 12177 c=IN IP4 209.110.59.33 12178 m=audio 30000 RTP/AVP 4 12179 a=sendrecv 12180 } ; RTP profile for G.723 is 4 12181 } 12182 } 12183 } 12184 } 12186 The Residential gateway 2 now creates an ephemeral termination, with 12187 newly allocated resources for it. The IP address that is allocated is 12188 192.168.0.110 and the port number is 45000. The response is sent back 12189 to MGC. 12191 Step 44 12192 MG2 to MGC: 12193 MEGACO/1 [209.110.59.34]: 26000 12194 Reply = 1247 { 12195 Context = 2 { 12196 Add=EphE{ 12197 Media { 12198 Local { 12199 v=0 12200 c=IN IP4 192.168.0.110 12201 m=audio 45000 RTP/AVP 4 12202 a=recvonly 12203 } ; RTP profile for G.723 is 4 12204 } 12205 } 12206 } 12207 } 12208 } 12209 The MGC after receiving the local SDP information update the Ephemeral 12210 termination EphA of the Residential Gateway 1. The Modify command is 12211 generated towards RGW1. 12213 Step 45 12214 MGC to MG1: 12215 MEGACO/1 [216.33.33.61]: 27000 12216 Transaction = 1248 { 12217 Context = 1 12218 Topology TermA, EphA,bothway, TermA, EphD, bothway, EphA,EphD, bothway{ 12219 Modify = EphA { 12220 Media { 12221 { 12222 LocalControl { 12223 Mode = sendrecv, 12224 }, 12225 Remote { 12226 v=0 12227 c=IN IP4 192.168.0.110 12228 m=audio 45000 RTP/AVP 4 12229 } 12230 } 12231 } 12232 } 12233 } 12235 The Residential gateway now generates the Modify response to the MGC. 12237 Step 46 12238 MG1 to MGC: 12239 MEGACO/1 [209.110.59.34]: 25000 12240 Reply = 1248 { 12241 Context = 1 { 12242 Modify=EphA 12243 } 12244 All the terminations in all the contexts are made to sendrecv, thus all 12245 the three users are effectively in conference. The following figure 12246 shows the direction of media transfer between terminations inside each 12247 of the contexts. 12249 +------------------------------------------------------+ 12250 | RGW1 +---------------+ | 12251 | Context1 | EPHA | | 12252 | +---------------+ | Local A | | 12253 | | |<------------>| Remote B |<-------> 12254 | | | +------>| | | 12255 | | Phy A | | +---------------+ | 12256 <---->| | | +---------------+ | 12257 | | | | | EphD | | 12258 | | | +------>| Local A |<------> 12259 | | |<------------>| Remote C | | 12260 | +---------------+ +---------------+ | 12261 | | 12262 +------------------------------------------------------+ 12264 +------------------------------------------------------+ 12265 | RGW2 +---------------+ | 12266 | Context2 | EPHB | | 12267 | +---------------+ | Local B | | 12268 | | |<------------>| Remote C |<-------> 12269 | | | +----->| | | 12270 | | Phy B | | +---------------+ | 12271 <---->| | | +---------------+ | 12272 | | | | | EphD | | 12273 | | | +------>| Local B |<------> 12274 | | |<------------>| Remote A | | 12275 | +---------------+ +---------------+ | 12276 | | 12277 +------------------------------------------------------+ 12279 +------------------------------------------------------+ 12280 | RGW3 +---------------+ | 12281 | Context3 | EPHC | | 12282 | +---------------+ | Local C | | 12283 | | |<------------>| Remote B |<-------> 12284 | | | +----->| | | 12285 | | Phy C | | +---------------+ | 12286 <---->| | | +---------------+ | 12287 | | | | | EphF | | 12288 | | | +----->| Local C |<------> 12289 | | |<------------>| Remote A | | 12290 | +---------------+ +---------------+ | 12291 | | 12292 +------------------------------------------------------+ 12294 In this example UserB goes onhook. The onhook event is reported to MGC 12295 using the Notify message. 12297 Step 47 12298 MG2 to MGC: 12299 MEGACO/1 [207.176.47.89]:26000 12300 Transaction = 3006 { 12301 Context = 2 { 12302 Notify = TermB {ObservedEvents =1234 { 12303 20010202T10030000:al/on} 12304 } 12305 } 12306 } 12308 The MGC responds to the MG's notify message. 12309 Step 48 12310 MGC to MG2: 12311 MEGACO/1 [216.33.33.61]:27000 12312 Reply = 3006 { 12313 Context = 2 { 12314 Notify = TermB 12315 } 12316 } 12317 The MGC generates Subtract command towards the Residential Gateway 2 to 12318 delete all the terminations in the context 2. The statistics are 12319 requested only for the ephemeral terminations. 12321 Step 49 12322 MGC to MG2: 12323 MEGACO/1 [216.33.33.61]: 27000 12324 Transaction = 1249 { 12325 Context = 2 { 12326 Subtract = TermB {Audit{ }}, 12327 Subtract = EphB {Audit{Statistics}} 12328 Subtract = EphE {Audit{Statistics}} 12329 } 12330 } 12331 The MG2 responds to the subtract commands generated by MGC. 12333 Step 50 12334 MG2 to MGC: 12335 MEGACO/1 [209.110.59.34]:25000 12336 Reply = 1249 { 12337 Context = 2 { 12338 Subtract = TermB 12339 Subtract = EphB { 12340 Statistics { 12341 rtp/ps=987, ; packets sent 12342 nt/os=65432, ; octets sent 12343 rtp/pr=1234, ; packets received 12344 nt/or=56789, ; octets received 12345 rtp/pl=10, ; % packets lost 12346 rtp/jit=30, 12347 rtp/delay=30 ; average latency 12348 } 12349 Subtract = EphE { 12350 Statistics { 12351 rtp/ps=1987, ; packets sent 12352 nt/os=65432, ; octets sent 12353 rtp/pr=1234, ; packets received 12354 nt/or=56789, ; octets received 12355 rtp/pl=10, ; % packets lost 12356 rtp/jit=30, 12357 rtp/delay=30 ; average latency 12358 } 12360 } 12361 } 12362 } 12363 The MGC generates Subtract command for the ephemeral termination EphA 12365 towards the RGW1. 12367 Step 51 12368 MGC to MG2: 12369 MEGACO/1 [216.33.33.61]: 27000 12370 Transaction = 1250 { 12371 Context = 1 { 12372 Subtract = EphA {Audit{Statistics}} 12373 } 12374 } 12375 The MG1 responds to the subtract commands generated by MGC. 12377 Step 52 12378 MG1 to MGC: 12379 MEGACO/1 [209.110.59.34]:25000 12380 Reply = 1250 { 12381 Context = 2 { 12382 Subtract = EphA { 12383 Statistics { 12384 rtp/ps=987, ; packets sent 12385 nt/os=65432, ; octets sent 12386 rtp/pr=1234, ; packets received 12387 nt/or=56789, ; octets received 12388 rtp/pl=10, ; % packets lost 12389 rtp/jit=30, 12390 rtp/delay=30 ; average latency 12391 } 12392 } 12393 } 12394 } 12395 The MGC generates similar command towards UserC at RGW2, for 12396 subtracting the ephemeral termination EphC. 12398 Step 53 12399 MGC to MG3: 12400 MEGACO/1 [216.33.33.61]: 27000 12401 Transaction = 1251 { 12402 Context = 3 { 12403 Subtract = EphC {Audit{Statistics}} 12404 } 12405 } 12406 The MG3 responds to the subtract commands generated by MGC. 12408 Step 54 12409 MG3 to MGC: 12410 MEGACO/1 [209.110.59.34]:25000 12411 Reply = 1251 { 12412 Context = 3 { 12413 Subtract = EphC { 12414 Statistics { 12415 rtp/ps=987, ; packets sent 12416 nt/os=65432, ; octets sent 12417 rtp/pr=1234, ; packets received 12418 nt/or=56789, ; octets received 12419 rtp/pl=10, ; % packets lost 12420 rtp/jit=30, 12421 rtp/delay=30 ; average latency 12422 } 12423 } 12424 } 12425 } 12426 Media connection is present only between UserA and UserC as shown in 12427 figure below. 12429 +------------------------------------------------------+ 12430 | RGW1 | 12431 | Context1 | 12432 | +---------------+ +---------------+ | 12433 | | | | | | 12434 | | | | | | 12435 | | Phy A | | Eph D | | 12436 <---->| |<------------>| LocalA |<------> 12437 | | | | RemoteC | | 12438 | | | | | | 12439 | +---------------+ +---------------+ | 12440 | | 12441 +------------------------------------------------------+ 12443 +------------------------------------------------------+ 12444 | RGW3 | 12445 | Context3 | 12446 | +---------------+ +---------------+ | 12447 | | | | | | 12448 | | | | | | 12449 | | Phy C | | Eph F | | 12450 <---->| |<------------>| LocalC |<------> 12451 | | | | RemoteA | | 12452 | | | | | | 12453 | +---------------+ +---------------+ | 12454 | | 12455 +------------------------------------------------------+ 12457 After completing the conversation with UserA, UserC goes onhook. The 12458 same is indicated towards MGC in the Notify command. 12460 Step 55 12461 MG3 to MGC: 12462 MEGACO/1 [209.110.59.34]:25000 12463 Transaction = 4004 { 12464 Context = 3 { 12465 Notify = TermC {ObservedEvents =1111 { 12466 20060202T10030000:al/on} 12467 } 12468 } 12469 } 12471 The MGC responds to the MG's notify message. 12472 Step 56 12473 MGC to MG3: 12474 MEGACO/1 [216.33.33.61]: 27000 12475 Reply = 4004 { 12476 Context = 3 { 12477 Notify = TermC 12478 } 12479 } 12481 The MGC generates a Modify command towards the RGW1 for applying busy 12482 tone to the called subscriber. The mode of both terminations is set to 12483 receive only. 12485 Step 57 12486 MGC to MG1: 12487 MEGACO/1 [216.33.33.61]: 27000 12488 Transaction = 1252 { 12489 Context = 1 { 12490 Modify = TermA { 12491 Signals {cg/bt} 12492 Media { 12493 LocalControl { 12494 Mode = recvonly} 12495 } 12496 }, 12497 Modify = EphD { 12498 Media { 12499 LocalControl { 12500 Mode = recvonly} 12501 } 12502 } 12503 } 12504 } 12505 } 12507 The MG1 responds to this modify request. 12509 Step 58 12510 MG1 to MGC: 12511 MEGACO/1 [209.110.59.34]: 25000 12512 Reply = 1252 { 12513 Context = 1 { 12514 Modify= TermA, Modify = EphD} 12515 } 12517 The MGC generates Subtract command RGW3. 12519 Step 59 12520 MGC to MG3: 12521 MEGACO/1 [216.33.33.61]: 27000 12522 Transaction = 1254 { 12523 Context = 3 { 12524 Subtract = TermC {Audit{ }}, 12525 Subtract = EphF {Audit{Statistics}} 12526 } 12528 } 12529 The MG3 responds to the subtract commands generated by MGC. 12531 Step 60 12532 MG3 to MGC: 12533 MEGACO/1 [209.110.59.34]:25000 12534 Reply = 1254 { 12535 Context = 3 { 12536 Subtract = TermC 12537 Subtract = EphF { 12538 Statistics { 12539 rtp/ps=987, ; packets sent 12540 nt/os=65432, ; octets sent 12541 rtp/pr=1234, ; packets received 12542 nt/or=56789, ; octets received 12543 rtp/pl=10, ; % packets lost 12544 rtp/jit=30, 12545 rtp/delay=30 ; average latency 12546 } 12547 } 12548 } 12549 } 12551 The UserA goes onhook after hearing the busy tone. The same is 12552 indicated to MGC using the Notify command. 12554 Step 61 12555 MG1 to MGC: 12556 MEGACO/1 [209.110.59.34]: 25000 12557 Transaction = 2002 { 12558 Context = 1 { 12559 Notify = TermA {ObservedEvents =1112 { 12560 20010202T10010000:al/on} 12561 } 12562 } 12564 MGC after receiving the Notify command responds back with the Notify 12565 response. 12567 Step 62 12568 MGC to MG1: 12569 MEGACO/1 [216.33.33.61]: 27000 12570 Reply = 2002 { 12571 Context = 1 {Notify = TermA} 12572 } 12574 Step 63: 12576 MGC to MG1 12577 MEGACO/1 [216.33.33.61]: 27000 12578 Transaction = 1253 { 12579 Context = 1 { 12580 Subtract = TermA {Audit{ }}, 12581 Subtract = EphD {Audit{Statistics}} 12582 } 12583 } 12584 The MG subtracts the two terminations from the context. The context 12585 itself is deleted with the "subtract" of the last termination from it. 12586 The MG1 responds to this transaction from MGC with statistics on 12587 ephemeral termination. 12589 Step 64 12590 MG1 to MGC: 12591 MEGACO/1 [209.110.59.34]:25000 12592 Reply = 1253 { 12593 Context = 1 { 12594 Subtract = TermA 12595 Subtract = EphD { 12596 Statistics { 12597 rtp/ps=1234, ; packets sent 12598 nt/os=56789, ; octets sent 12599 rtp/pr=987, ; packets received 12600 nt/or=65432, ; octets received 12601 rtp/pl=10, ; % packets lost 12602 rtp/jit=30, 12603 rtp/delay=30 ; average latency 12604 } 12605 } 12606 } 12607 } 12609 10.0 SDP for ATM 12611 10.1 This section illustrates the usage of SDP for ATM. The draft "ATM 12612 SDP" [Ref:10] is taken as reference. The two call establishment methods 12613 namely "Forward Bearer Connection Set-up model" and the "Backward 12614 Connection Set-up model" are considered. In the first method, the ATM 12615 connection establishment is initiated by the Originating Media Gateway 12616 whereas in the second method the Terminating Media Gat 12617 eway initiates 12618 the ATM connection establishment. 12620 The SDP atrribute "eecid" is used in both the methods. The "eecid" 12621 is a means of correlating service-level connections with underlying 12622 ATM bearer connections. 12624 In this example we assume that the Originating Media Gateway is 12625 controlled by MGC1 and terminating Gateway controlled by MGC2. The 12626 communication protocol between the two MGC's is out-of-scope of this 12627 draft. 12629 10.1.1 Forward Bearer Connection Set-up Method 12631 In this call scenario we assume that the RGW1 and RGW2 are having ATM 12632 connectivity towards the PDN network. RGW1 is controlled by MGC1 and 12633 RGW2 is controlled by MGC2. The call is initiated by user connected 12634 to the RGW1. 12636 ______________________________________________________________________ 12637 | | | 12638 RGW1 | MGC1 | MGC2 | RGW2 12639 __________________|_________________|_______________|________________ 12640 | | | | 12641 |<----------------| |-------------->| 12642 | Initial Modify | | Initial Modify| 12643 |---------------->| |<--------------| 12644 | Modify Resp | | Modify Resp | 12645 ------>| | | | 12646 OffHook|---------------->| | | 12647 | Notify OffHook | | | 12648 |<----------------| | | 12649 | Notify Resp | | | 12650 <-------| | | | 12651 Dial Tone| | | | 12652 ------->| | | | 12653 Digits |---------------->| | | 12654 | Notify Digits | | | 12655 |<----------------| | | 12656 | Notify Resp |--------------->| | 12657 | |MGC-MGC protocol| | 12658 | | Address info | | 12659 | | |-------------->| 12660 | | | Modify PhyB |-------> 12661 | | |<--------------|Ring 12662 | | | Modify Resp | 12663 | |<---------------| | 12664 | | MGC-MGC Ring indication | 12665 |<----------------| | | 12666 | Add PhyA SD:cg/rt | | 12667 <--------| Add $ Local Unspecified | | 12668 Ringback |---------------->| | | 12669 | Add PhyA Resp | | | 12670 | Add EphA Resp | | |<-------- 12671 | | |<--------------|OffHook 12672 | | | Notify OffHook| 12673 | |--------------->| | 12674 | | MGC-MGC SDPexchange | 12675 | | |-------------->| 12676 | | | Add PhyB | 12677 | | | Add $ Local Unspecified 12678 | | | Remote Specified 12679 | | |<--------------| 12680 | | | Add PhyB Resp | 12681 | | | Add EphB Local Specified 12682 | |<---------------| | 12683 | | MGC-MGC SDPexchange | 12684 |<----------------| | | 12685 | Modify EphA Remote Specified | | 12686 |---------------->| | | 12687 | Modify EphA Resp| | | 12688 |/------------------------------------------------\| 12689 | MEDIA | 12690 |\------------------------------------------------/| 12691 ------->| | | | 12692 OnHook |---------------->| | | 12693 | Notify OnHook | | | 12694 |<----------------|--------------->| | 12695 | Notify Resp | MGC-MGC teardowninfo | 12696 | | |-------------->| 12697 | | | Modify PhyB cg/bt 12698 | | |<--------------| 12699 |<----------------| | | 12700 | Sub PhyA | | |<------- 12701 | Sub EphA | |<--------------| OnHook 12702 |---------------->| | Notify OnHook | 12703 | Sub PhyA Resp | |-------------->| 12704 | Sub EphA Reps Statistics |-------------->| 12705 | | | Sub PhyB | 12706 | | | Sub EphB | 12707 | | |<--------------| 12708 | | | Sub PhyB Resp | 12709 | | | Sub EphB Resp Statistics 12710 _________|_________________|________________|_______________|________ 12712 In Step 1 the MGC1 generates the Modify message towards the 12713 RGW1 and similarly MGC2 generates Modify message towards the RGW2 to 12714 check for off hook on the terminations. (A wildcard command may also be 12715 used in this scenario but for simplicity we consider only command to 12716 specific terminations). Modify message generated only for Residential 12717 gateway 1 is shown, similar message is sent to the other Residential 12718 gateway also. We are not considering the embedded signal and event 12719 descriptors here. The MGC in NULL context generates the command to the 12720 specific termination TermA. The off hook event of the analog 12721 supervision package is used here. The request identifier specified here 12722 in the example is 1111. The mode of the termination is set to receive 12723 only. The stream parameter is used with only the Local control 12724 descriptor. 12726 Step 1 12728 MGC1 to RGW1: 12729 MEGACO/1 [216.33.33.61]: 27000 12730 Transaction = 1234 { 12731 Context = - { 12732 Modify = TermA { 12733 Media { 12734 LocalControl { 12735 Mode = Receiveonly} 12736 }, 12737 Events = 1111 {al/of} 12738 } 12739 } 12740 } 12742 MG after receiving the command from MGC1 accepts it and responds with 12743 the transaction reply. 12745 Step 2 12747 MG1 to MGC2: 12748 MEGACO/1 [209.110.59.34]: 25000 12749 Reply = 1234 { 12750 Context = - {Modify = TermA} 12751 } 12753 In this example User A goes off hook. This event is detected by the 12754 RGW1 and constructs and sends the Notify message towards the MGC1. The 12755 MG uses the same request id (1111) sent by the MGC1 in its initial 12756 command. The timestamp of the detected event is also passed as 12757 parameter to the observed event. 12759 Step 3 12760 MG1 to MGC1: 12761 MEGACO/1 [209.110.59.34]: 25000 12762 Transaction = 2000 { 12763 Context = - { 12764 Notify = TermA {ObservedEvents =1111 { 12765 20010202T10000000:al/of}} 12766 } 12768 MGC1 generates the Notify response and responds with more messages 12769 tow 12770 ards the MG that generated the Notify command. 12772 Step 4 12773 MGC1 to MG1: 12774 MEGACO/1 [216.33.33.61]: 27000 12775 Reply = 2000 { 12776 Context = - {Notify = TermA} 12777 } 12778 The MGC1 in the present example issues a MODIFY command. The Modify 12779 command contains a signal descriptor for the application of dial tone 12780 to the user. The digit map descriptor here is used to configure a digit 12781 map on the termination. The digit map name used in the example is 12782 Dmap1 and the dial pattern is 2XXX. The event descriptor lists digit 12783 map completion event of the DTMF detection package and onhook of the 12784 analog line supervision package. The request id specified in the event 12785 descriptor is 1112. 12787 Step 5 12788 MGC1 to MG1: 12789 MEGACO/1 [216.33.33.61]: 27000 12790 Transaction = 1235 { 12791 Context = - { 12792 Modify = TermA { 12793 Signals {cg/dt}, 12794 DigitMap= Dmap1 {(2XXX)} 12795 Events = 1112 { 12796 al/on, dd/ce {DigitMap=Dmap1} 12797 }, 12798 } 12799 } 12800 } 12802 MG after receiving the Modify command after validation responds to 12803 the MGC1 and starts processing the descriptors listed. 12805 Step 6 12806 MG1 to MGC1: 12807 MEGACO/1 [209.110.59.34]: 25000 12808 Reply = 1235 { 12809 Context = - {Modify = TermA} 12810 } 12812 The descriptors are processed in the order that is specified by the 12813 MGC1. In this example the order of descriptor is signal descriptor, 12814 digit map descriptor followed by Events descriptor. The MG first 12815 processes the signal descriptor. The dial tone is applied to the 12816 Termination specified. The Digit map is updated in the Database of the 12817 termination. The Digit map said to be ACTIVE on the termination as the 12818 digit map completion event is listed in the events descriptor with the 12819 digit map name. A digit map is activated whenever a new event 12820 descriptor is applied to the termination or embedded event descriptor 12821 is activated, and that event descriptor contains a digit map 12822 completion event which itself contains a digit map parameter. UserA 12823 after receiving the dial tone starts dialing digits. In this example 12824 we will not dwell into the different possible cases of digit dialing 12825 by the user. It's assumed that the user dials digits that match the 12826 pattern specified in the digit map. Lets assume that the user has 12827 dialed 2992. MG detects the digits dialed and reports the same as 12828 parameter to the digit map completion event. A notify command is 12829 generated from MG1 to MGC1. The MG again used the same request 12830 identifier as specified by the MGC1. 12832 Step 7 12833 MG1 to MGC1: 12834 MEGACO/1 [209.110.59.34]: 25000 12835 Transaction = 2001 { 12836 Context = - { 12837 Notify = TermA {ObservedEvents =1112 { 12838 20010202T10010000:dd/ce {ds="2992", Meth=FM}}} 12839 } 12840 } 12842 MGC1 after receiving the Notify command responds back with the Notify 12843 response. 12845 Step 8 12846 MGC1 to MG1: 12847 MEGACO/1 [216.33.33.61]: 27000 12848 Reply = 2001 { 12849 Context = - {Notify = TermA} 12850 } 12852 MGC after receiving the Notify command starts analyzing the dialed 12853 digits. In this example it is assumed that the called subscriber is 12854 connected to the RGW2, which is controlled by MGC2. The MGC1 communicates 12855 to MGC2 that there is a call initiation for UserB. 12857 The MGC1 generates a transaction with two commands clubbed into the same 12858 Action. The first command is to create a new context and add the 12859 physical termination TermA into it. The second command is generated 12860 to create an ephemeral termination and add the created termination 12861 in the same context that was created because of the earlier command. 12862 Here we assumed a single set of SDP information indicating that 12863 Reserve group is not used. The Reserve Value feature is also not used. 12865 The MGC1 thus initiates service-level call establishment by sending the 12866 following control message to the RGW1. 12868 Step 9 12869 MGC to MG1: 12870 MEGACO/1 [216.33.33.61]: 27000 12871 Transaction = 1236 { 12872 Context = $ { 12873 Add = TermA { 12874 Signals {cg/rt} 12875 } 12876 Add = $ { 12877 Media { 12878 { 12879 LocalControl { 12880 Mode = Receiveonly, 12881 }, 12882 Local { 12883 v=0 12884 o=- 2873397497 0 ATM - - 12885 s=- 12886 c=ATM - - 12887 t=0 0 12888 m=audio $ - - 12889 } 12890 } 12891 } 12892 } 12893 } 12895 In this example the connection field specifies only the connection type 12896 (ATM). The other fields are unspecified as they are not needed. 12897 The RGW1 in its response indicates its NSAP address. In this example the 12898 RGW1 creates a context with contextID 1. The physical termination TermA 12899 is added to context 1. The mode of the physical termination was earlier 12900 set to Receiveonly and in this message the ephemeral termination is 12901 requested to create with Receiveonly mode. The ephemeral termination 12902 created in this example is EphA. 12904 Step 10 12905 RGW1 to MGC1: 12906 MEGACO/1 [209.110.59.34]: 25000 12907 Reply = 1236 { 12908 Context = 1 { 12909 Add = TermA, 12910 Add=EphA{ 12911 Media { 12912 Local { 12913 v=0 12914 o=- 2873397496 0 ATM 12915 NSAP 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 12916 s=- 12917 c=ATM NSAP 12918 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 12919 t=0 0 m=audio - AAL2/ITU 8 12920 a=recvonly 12921 } 12922 } 12923 } 12924 } 12925 } 12926 } 12928 MGC2 after receiving the message from MGC1 generates an Add command 12929 towards the RGW2. The ContextID specified in the action is $. The first 12930 command adds the physical termination TermB to the newly created context. 12931 The Signal descriptor for this termination lists the ring signal of 12932 the analog line supervision package. This alerting signal is applied to 12933 the termination of the TermB. The Event descriptor specifies offhook event 12934 of the analog line supervision package. The second Add is meant to create 12935 an ephemeral termination. MGC2 has the local information for the 12936 ephemeral termination EphA in the RGW1. This information is passed 12937 as remote information to the RGW2. The new ephemeral termination that 12938 will be created will take these parameters as the remote SDP 12939 information. 12941 Step 11 12942 MGC2 to RGW2: 12943 MEGACO/1 [216.33.33.62]:27000 12944 Transaction = 1237 { 12945 Context = $ { 12946 Add = TermB { Media { 12947 LocalControl {Mode = Receiveonly} }, 12948 Signals {al/ri} 12949 Events =1234{al/of embed {events = 1235 {al/on}}}, 12950 }, 12951 Add = $ {Media { 12952 LocalControl { 12953 Mode = sendrecv, 12954 }, 12955 Local { 12956 v=0 12957 o=- 2873397497 0 ATM - - 12958 s=- 12959 c=ATM - - 12960 t=0 0 12961 m=audio $ - - 12962 }, 12963 Remote { 12964 v=0 12965 o=- 2873397496 0 ATM 12966 NSAP 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 12967 s=- 12968 c=ATM NSAP 12969 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 12970 t=0 0 m=audio - AAL2/ITU 8 12971 } 12972 } 12973 } 12974 } 12975 } 12976 } 12978 RGW2 after receiving the new transaction from MGC2 starts processing 12979 it. It creates a new context with contextID 2. It adds the physical 12980 termination TermB to that context and start processing the descriptor 12981 specified in the command. The signal descriptor lists "ring" signal 12982 to be applied on the termination. The event descriptor li 12983 sts the 12984 off hook event. The RGW2 creates an ephemeral termination with 12985 TerminationId EphB. The local information is under-specified from 12986 the MGC2. The RGW2 allocates the necessary resources for processing the 12987 media descriptor for the ephemeral termination. The RGW2 responds 12988 to the MGC2 by providing an SDP descriptor with a locally assigned 12989 "eecid". The MG2 responds to MGC with the following transaction reply. 12991 Step 12 12992 RGW2 to MGC2: 12993 MEGACO/1 [207.176.47.90]: 26000 12994 Reply = 1237 { 12995 Context = 2 { 12996 Add = TermB, 12997 Add = EphB{ 12998 Media { 12999 Local { 13000 v=0 13001 o=- 2873397714 0 ATM 13002 NSAP 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13003 s=- 13004 c=ATM NSAP 13005 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13006 t=0 0 13007 m=audio - AAL2/ITU 8 13008 a=eecid:B3D58E32 13009 } 13010 } 13011 } 13012 } 13013 } 13015 The MGC2 waits for the UserB to go offhook. Once the UserB goes offhook, 13016 RGW2 reports the notification of the offhook event to the MGC2. 13018 Step 13 13019 RGW2 to MGC2: 13020 MEGACO/1 [207.176.47.90]: 26000 13021 Transaction = 3000 { 13022 Context = 2 { 13023 Notify = TermB {ObservedEvents =1234 { 13024 20000202T10020000:al/of}} 13025 } 13026 } 13027 The MGC2 responds to the RGW2 with the Notify response. 13029 Step 14 13030 MGC2 to RGW2: 13031 MEGACO/1 [216.33.33.60]: 27000 13032 Reply = 3000 { 13033 Context = 2 {Notify = TermB} 13034 } 13035 The MGC2 generates a transaction towards RGW2 with two commands in one 13036 action. It changes the mode of both the terminations to sendrecv. The 13037 Signal descriptor of the Modify command for the first termination, 13038 stops the ring signal already applied on the termination and the event 13039 descriptor lists the onhook event. 13041 Step 15: 13042 MGC to MG2: 13043 MEGACO/1 [216.33.33.60]: 27000 13044 Transaction = 1238 { 13045 Context = 2 { 13046 Modify = TermB { 13047 Signals { } ; to turn off ringing 13048 Events = 1235 {al/on}, 13049 Media { 13050 LocalControl { 13051 Mode = SendRecv, 13052 } 13053 } 13054 } 13055 Modify = EphB{ 13056 Media { 13058 LocalControl { 13059 Mode = SendRecv, 13060 } 13061 } 13062 } 13063 } 13065 The MG2 responds to the request from MGC. 13067 Step 16 13068 RGW2 to MGC2: 13069 MEGACO/1 [207.176.47.90]: 26000 13070 Reply = 1238 { 13071 Context = 2 {Modify = TermB , Modify = EphB} 13072 } 13074 The MGC2 generates message to the MGC1 to indicate the "eecid" generated 13075 by the RGW2. The MGC1 generates a Modify message towards the RGW1 to 13076 stop the ringback tone and to report the remote SDP information for 13077 the ephemeral termination EphA. The mode of the two terminations 13078 TermA and EphA is set to send receive. 13080 Step 17 13081 MGC1 to RGW1: 13082 MEGACO/1 [216.33.33.61]: 27000 13083 Transaction = 1239 { 13084 Context = 1 { 13085 Modify = TermA { 13086 Media { 13087 LocalControl { 13088 Mode = sendrecv} 13089 } 13090 } 13091 Signals { } 13092 }, 13093 Modify = EphA { 13094 Media { 13095 LocalControl { 13096 Mode = sendrecv} 13097 Local { 13098 v=0 13099 o=- 2873397874 0 ATM - - 13100 s=- 13101 c=ATM - - 13102 t=0 0 13103 m=audio $ - - 13104 a=bearerType:SVC on 13105 } 13106 Remote { 13107 v=0 13108 o=- 2873397714 0 ATM 13109 NSAP 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13110 s=- 13111 c=ATM NSAP 13112 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13113 t=0 0 13114 m=audio $ AAL2/ITU 8 13115 a=eecid:B3D58E32 13116 } 13117 } 13118 } 13119 } 13120 } 13121 } 13122 The empty signal descriptor in the Modify command for termination 13123 TermA, specifies to stop the ringback tone at the calling end. The 13124 remote SDP information specifies the "eecid" to be used for the 13125 ephemeral termination EphA. The RGW1 using this "eecid" initiates the 13126 connection establishment. The Local SDP information with the media 13127 attribute "bearerType" indicates that an SVC is to be used and that the 13128 flag is on i.e. the SVC is to be set up by the 13129 terminating Media Gateway. The mode is changed to send receive. RGW1 13130 responds to the MGC with the response for the Modify commands. 13132 Step 18 13133 MG1 to MGC: 13134 MEGACO/1 [209.110.59.34]: 25000 13135 Reply = 1239 { 13136 Context = 1 {Modify = TermA, Modify = EphA} 13137 } 13138 The two users can exchange the media. The call can be termination 13139 either by the calling user or the called user. In this example it is 13140 assumed that the calling party has gone on-hook The UserA after the 13141 conversation goes onhook indicating the tearing down of the call. The 13142 same is reported in the Notify command from RGW1 to MGC1. 13144 Step 19 13145 RGW1 to MGC1: 13146 MEGACO/1 [209.110.59.34]:25000 13147 Transaction = 2002 { 13148 Context = 1 { 13149 Notify = TermA {ObservedEvents =1112 { 13150 20010202T10030000:al/on} 13151 } 13152 } 13154 The MGC1 responds to the MG1s Notify message. 13156 Step 20 13157 MGC1 to RGW1: 13158 MEGACO/1 [216.33.33.61]:27000 13159 Reply = 2002 { 13160 Context = 1 { 13161 Notify = TermA 13162 } 13163 } 13165 The MGC2 after receiving the information from MGC1, generates a Modify 13166 command towards the RGW2 for applying busy tone to the called 13167 subscriber. The mode of both terminations is set to receive only. 13169 Step 21 13170 MGC2 to RGW2: 13171 MEGACO/1 [216.33.33.60]: 27000 13172 Transaction = 1240 { 13173 Context = 2 { 13174 Modify = TermB { 13175 Signals {cg/bt} 13176 Media { 13177 LocalControl { 13178 Mode = recvonly} 13179 } 13180 }, 13181 Modify = EphB { 13182 Media { 13183 LocalControl { 13184 Mode = recvonly} 13185 } 13186 } 13187 } 13188 } 13189 } 13191 The RGW2 responds to this modify request. 13193 Step 22 13194 RGW2 to MGC2: 13195 MEGACO/1 [207.176.47.90]: 26000 13196 Reply = 1240 { 13197 Context = 2 { 13198 Modify= TermB, Modify = EphB} 13199 } 13201 The MGC1 generates transactions with two subtracts commands one for 13202 physical and other for ephemeral terminations. 13204 Step 23: 13205 MGC1 to RGW1 13206 MEGACO/1 [216.33.33.61]: 27000 13207 Transaction = 1241 { 13208 Context = 1 { 13209 Subtract = TermA {Audit{ }}, 13210 Subtract = EphA {Audit{Statistics}} 13211 } 13212 } 13213 The RGW1 subtracts the two terminations from the context. The context 13214 itself is deleted with the subtract of the last termination from it. 13215 The RGW1 responds to this transaction from MGC1 with statistics on 13216 ephemeral termination. 13218 Step 24 13219 RGW1 to MGC1: 13220 MEGACO/1 [209.110.59.34]:25000 13221 Reply = 1241 { 13222 Context = 1 { 13223 Subtract = TermA 13224 Subtract = EphA { 13225 Statistics { 13226 rtp/ps=1234, ; packets sent 13227 nt/os=56789, ; octets sent 13228 rtp/pr=987, ; packets received 13229 nt/or=65432, ; octets received 13230 rtp/pl=10, ; % packets lost 13231 rtp/jit=30, 13232 rtp/delay=30 ; average latency 13233 } 13234 } 13235 } 13236 } 13238 The User B after going onhook, the RGW2 generates Notify command 13239 towards the MGC2. 13241 Step 25 13242 RGW2 to MGC2: 13243 MEGACO/1 [207.176.47.90]: 26000 13244 Transaction = 3001 { 13245 Context = 2 { 13246 Notify = TermB {ObservedEvents =1235 { 13247 20000202T10070000:al/on}} 13248 } 13249 } 13251 Madhubabu, et al. I 13252 The MGC2 responds to the RGW2 with the Notify response. 13254 Step 26 13255 MGC2 to RGW2: 13256 MEGACO/1 [216.33.33.61]: 27000 13257 Reply = 3001 { 13258 Context = 2 {Notify = TermB} 13259 } 13261 The MGC2 generates subtract command towards RGW2 for removing TermB 13262 from valid context. 13264 Step 26 13265 MGC2 to RGW2: 13266 MEGACO/1 [216.33.33.61]: 27000 13267 Transaction = 1242 { 13268 Context = 2 { 13269 Subtract = TermB {Audit{ }}, 13270 Subtract = EphB {Audit{Statistics}} 13271 } 13272 } 13273 The RGW2 responds to the subtract commands generated by MGC2. 13275 Step 27 13276 RGW2 to MGC2: 13277 MEGACO/1 [207.176.47.89]:26000 13278 Reply = 1242 { 13279 Context = 2 { 13280 Subtract = TermB 13281 Subtract = EphB { 13282 Statistics { 13283 rtp/ps=987, ; packets sent 13284 nt/os=65432, ; octets sent 13285 rtp/pr=1234, ; packets received 13286 nt/or=56789, ; octets received 13287 rtp/pl=10, ; % packets lost 13288 rtp/jit=30, 13289 rtp/delay=30 ; average latency 13290 } 13291 } 13292 } 13293 } 13295 The two users UserA and UserB are ready for initiating/receiving further 13296 calls. 13298 10.1.2 Backward Bearer Connection Set-up Method 13299 In this call scenario we assume that the RGW1 and RGW2 are having ATM 13300 connectivity towards the PDN network. RGW1 is controlled by MGC1 and 13301 RGW2 is controlled by MGC2. The call is initiated by user connected 13302 to the RGW1. 13304 ______________________________________________________________________ 13305 | | | 13306 RGW1 | MGC1 | MGC2 | RGW2 13307 __________________|_________________|_______________|________________ 13308 | | | | 13309 |<----------------| |-------------->| 13310 | Initial Modify | | Initial Modify| 13311 |---------------->| |<--------------| 13312 | Modify Resp | | Modify Resp | 13313 ------>| | | | 13314 OffHook|---------------->| | | 13315 | Notify OffHook | | | 13316 |<----------------| | | 13317 | Notify Resp | | | 13318 <-------| | | | 13319 Dial Tone| | | | 13320 ------->| | | | 13321 Digits |---------------->| | | 13322 | Notify Digits | | | 13323 |<----------------| | | 13324 | Notify Resp |--------------->| | 13325 | |MGC-MGC protocol| | 13326 | | Address info | | 13327 | | |-------------->| 13328 | | | Modify PhyB |-------> 13329 | | |<--------------|Ring 13330 | | | Modify Resp | 13331 | |<---------------| | 13332 | | MGC-MGC Ring indication | 13333 |<----------------| | | 13334 | Add TermASD:cg/rt | | 13335 <--------| Add $ Local Unspecified | | 13336 Ringback |---------------->| | | 13337 | Add TermA Resp | | | 13338 | Add EphA Resp | | |<-------- 13339 | | |<--------------|OffHook 13340 | | | Notify OffHook| 13341 | |--------------->| | 13342 | | MGC-MGC SDPexchange | 13343 | | |-------------->| 13344 | | | Add TermB | 13345 | | | Add $ Local Unspecified 13346 | | | Remote Specified 13347 | | |<--------------| 13348 | | | Add TermB Resp| 13349 | | | Add EphB Local Specified 13350 | | |-------------->| 13351 | | | Modify TermB mode=sendrecv 13352 | | | Modify EphB mode=sendrecv 13353 | | |<--------------| 13354 | | | Modify Resp TermB 13355 | | | Modify Resp EphB 13356 | |<---------------| | 13357 | | MGC-MGC | | 13358 |<----------------| | | 13359 | Modify TermA sendrecv | | 13360 | Modify EphA remote specified mode=sendrecv | 13361 |---------------->| | | 13362 | Modify TermA Resp | | 13363 | Modify EphA Resp| | | 13364 |/------------------------------------------------\| 13365 | MEDIA | 13366 |\------------------------------------------------/| 13367 ------->| | | | 13368 OnHook |---------------->| | | 13369 | Notify OnHook | | | 13370 |<----------------|--------------->| | 13371 | Notify Resp | MGC-MGC teardowninfo | 13372 | | |-------------->| 13373 | | | Modify TermB cg/bt 13374 | | |<--------------| 13375 |<----------------| | | 13376 | Sub TermA | | |<------- 13377 | Sub EphA | |<--------------| OnHook 13378 |---------------->| | Notify OnHook | 13379 | Sub TermA Resp | |-------------->| 13380 | Sub EphA Reps Statistics |-------------->| 13381 | | | Sub TermB | 13382 | | | Sub EphB | 13383 | | |<--------------| 13384 | | | Sub TermB Resp| 13385 | | | Sub EphB Resp Statistics 13386 _________|_________________|________________|_______________|________ 13388 In Step 1 the MGC1 generates the Modify message towards the 13389 RGW1 and similarly MGC2 generates Modify message towards the RGW2 to 13390 check for off hook on the terminations. (A wildcard command may also be 13391 used in this scenario but for simplicity we consider only command to 13392 specific terminations). Modify message generated only for Residential 13393 gateway 1 is shown, similar message is sent to the other Residential 13394 gateway also. We are not considering the embedded signal and event 13395 descriptors here. The MGC in NULL context generates the command to the 13396 specific termination TermA. The off hook event of the analog 13397 supervision package is used here. The request identifier specified here 13398 in the example is 1111. The mode of the termination is set to receive 13399 o 13400 nly. The stream parameter is used with only the Local control 13401 descriptor. 13403 Step 1 13404 MGC1 to RGW1: 13405 MEGACO/1 [216.33.33.61]: 27000 13406 Transaction = 1234 { 13407 Context = - { 13408 Modify = TermA { 13409 Media { 13410 LocalControl { 13411 Mode = Receiveonly} 13412 }, 13413 Events = 1111 {al/of} 13414 } 13415 } 13416 } 13418 MG after receiving the command from MGC1 accepts it and responds with 13419 the transaction reply. 13421 Step 2 13423 MG1 to MGC2: 13424 MEGACO/1 [209.110.59.34]: 25000 13425 Reply = 1234 { 13426 Context = - {Modify = TermA} 13427 } 13429 In this example User A goes off hook. This event is detected by the 13430 RGW1 and constructs and sends the Notify message towards the MGC1. The 13431 MG uses the same request id (1111) sent by the MGC1 in its initial 13432 command. The timestamp of the detected event is also passed as 13433 parameter to the observed event. 13435 Step 3 13436 MG1 to MGC1: 13437 MEGACO/1 [209.110.59.34]: 25000 13438 Transaction = 2000 { 13439 Context = - { 13440 Notify = TermA {ObservedEvents =1111 { 13441 20010202T10000000:al/of}} 13442 } 13444 MGC1 generates the Notify response and responds with more messages 13445 towards the MG that generated the Notify command. 13447 Step 4 13448 MGC1 to MG1: 13449 MEGACO/1 [216.33.33.61]: 27000 13450 Reply = 2000 { 13451 Context = - {Notify = TermA} 13452 } 13454 The MGC1 in the present example issues a MODIFY command. The Modify 13455 command contains a signal descriptor for the application of dial tone 13456 to the user. The digit map descriptor here is used to configure a digit 13457 map on the termination. The digit map name used in the example is 13458 Dmap1 and the dial pattern is 2XXX. The event descriptor lists digit 13459 map completion event of the DTMF detection package and onhook of the 13460 analog line supervision package. The request id specified in the event 13461 descriptor is 1112. 13463 Step 5 13464 MGC1 to MG1: 13465 MEGACO/1 [216.33.33.61]: 27000 13466 Transaction = 1235 { 13467 Context = - { 13468 Modify = TermA { 13469 Signals {cg/dt}, 13470 DigitMap= Dmap1 {(2XXX)} 13471 Events = 1112 { 13472 al/on, dd/ce {DigitMap=Dmap1} 13473 }, 13474 } 13475 } 13476 } 13478 MG after receiving the Modify command after validation responds to 13479 the MGC1 and starts processing the descriptors listed. 13481 Step 6 13482 MG1 to MGC1: 13483 MEGACO/1 [209.110.59.34]: 25000 13484 Reply = 1235 { 13485 Context = - {Modify = TermA} 13486 } 13488 The descriptors are processed in the order that is specified by the 13489 MGC1. In this example the order of descriptor is signal descriptor, 13490 digit map descriptor followed by Events descriptor. The MG first 13491 processes the signal descriptor. The dial tone is applied to the 13492 Termination specified. The Digit map is updated in the Database of the 13493 termination. The Digit map said to be ACTIVE on the termination as the 13494 digit map completion event is listed in the events descriptor with the 13495 digit map name. A digit map is activated whenever a new event 13496 descriptor is applied to the termination or embedded event descriptor 13497 is activated, and that event descriptor contains a digit map 13498 completion event which itself contains a digit map parameter. UserA 13499 after receiving the dial tone starts dialing digits. In this example 13500 we will not dwell into the different possible cases of digit dialing 13501 by the user. It's assumed that the user dials digits that match the 13502 pattern specified in the digit map. Lets assume that the user has 13503 dialed 2992. MG detects the digits dialed and reports the same as 13504 parameter to the digit map completion event. A notify command is 13505 generated from MG1 to MGC1. The MG again used the same request 13506 identifier as specified by the MGC1. 13508 Step 7 13509 MG1 to MGC1: 13510 MEGACO/1 [209.110.59.34]: 25000 13511 Transaction = 2001 { 13512 Context = - { 13513 Notify = TermA {ObservedEvents =1112 { 13514 20010202T10010000:dd/ce {ds="2992", Meth=FM}}} 13515 } 13516 } 13518 MGC1 after receiving the Notify command responds back with the Notify 13519 response. 13521 Step 8 13522 MGC1 to MG1: 13523 MEGACO/1 [216.33.33.61]: 27000 13524 Reply = 2001 { 13525 Context = - {Notify = TermA} 13526 } 13528 MGC after receiving the Notify command starts analyzing the dialed 13529 digits. In this example it is assumed that the called subscriber is 13530 connected to the RGW2, which is controlled by MGC2. The MGC1 communicates 13531 to MGC2 that there is a call initiation for UserB. 13533 The MGC1 generates a transaction with two commands clubbed into the same 13534 Action. The first command is to create a new context and add the 13535 physical termination TermA into it. The second command is generated 13536 to create an ephemeral termination and add the created termination 13537 in the same context that was created because of the earlier command. 13538 Here we assumed a single set of SDP information indicating that 13539 Reserve group is not used. The Reserve Value feature is also not used. 13540 The MGC1 thus initiates service-level call establishment by sending the 13541 following control message to the RGW1. 13543 Step 9 13544 MGC to MG1: 13545 MEGACO/1 [216.33.33.61]: 27000 13546 Transaction = 1236 { 13547 Context = $ { 13548 Add = TermA { 13549 Signals {cg/rt} 13550 } 13551 Add = $ { 13552 Media { 13553 { 13554 LocalControl { 13555 Mode = Receiveonly, 13556 }, 13557 Local { 13558 v=0 13559 o=- 2873397497 0 ATM - - 13560 s=- 13561 c=ATM - - 13562 t=0 0 13563 m=audio $ - - 13564 } 13565 } 13566 } 13567 } 13568 } 13570 In this example the connection field specifies only the connection type 13571 (ATM). The other fields are unspecified as they are not needed. 13572 The RGW1 in its response indicates its NSAP address. In this example the 13573 RGW1 creates a context with contextID 1. The physical termination TermA 13574 is added to context 1. The mode of the physical termination was earlier 13575 set to Receiveonly and in this message the ephemeral termination is 13576 requested to create with Receiveonly mode. The ephemeral termination 13577 created in this example is EphA. The RGW1 in its Local SDP information 13578 specifies the "eecid" that needs to be used by the other RGW for 13579 establishing an ATM SVC between RGW1 and RGW2. 13581 Step 10 13582 RGW1 to MGC1: 13583 MEGACO/1 [209.110.59.34]: 25000 13584 Reply = 1236 { 13585 Context = 1 { 13586 Add = TermA, 13587 Add=EphA{ 13588 Media { 13589 Local { 13590 v=0 13591 o=- 2873397496 0 ATM 13592 NSAP 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 13593 s=- 13594 c=ATM NSAP 13595 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 13596 t=0 0 13597 m=audio - AAL2/ITU 8 13598 a=eecid:b3d58e32 13599 } 13600 } 13601 } 13602 } 13603 } 13604 } 13606 MGC2 after receving the SDP information from MGC1 generates an Add 13607 command towards the RGW2. The ContextID specified in the action is $. 13608 The first command adds the physical termination TermB to the newly 13609 created context. The Signal descriptor for this termination lists the 13610 ring signal of the analog line supervision package. This alerting signal 13611 is applied to the termination of the TermB. The Event descriptor specifies 13612 offhook event of the analog line supervision package. The second Add is 13613 meant to create an ephemeral termination. MGC2 has the local information 13614 for the ephemeral termination EphA in the RGW1. This information is passed 13615 as remote information t 13616 o the RGW2. The new ephemeral termination that 13617 will be created will take these parameters as the remote SDP 13618 information. 13620 Step 11 13621 MGC2 to RGW2: 13622 MEGACO/1 [216.33.33.62]:27000 13623 Transaction = 1237 { 13624 Context = $ { 13625 Add = TermB { Media { 13626 LocalControl {Mode = Receiveonly} }, 13627 Signals {al/ri} 13628 Events =1234{al/of embed {events = 1235 {al/on}}}, 13629 }, 13630 Add = $ {Media { 13631 LocalControl { 13632 Mode = sendrecv, 13633 }, 13634 Local { 13636 v=0 13637 o=- 2873397497 0 ATM - - 13638 s=- 13639 c=ATM - - 13640 t=0 0 13641 m=audio $ - - 13642 a= bearerType:SVC on 13643 }, 13644 Remote { 13645 v=0 13646 o=- 2873397496 0 ATM 13647 NSAP 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 13648 s=- 13649 c=ATM NSAP 13650 47.0091.8100.0000.0060.3E64.FD01.0060.3E64.FD01.00 13651 t=0 0 m=audio - AAL2/ITU 8 13652 a=eecid:b3d58e32 13653 } 13654 } 13655 } 13656 } 13657 } 13658 } 13660 RGW2 after receiving the new transaction from MGC2 starts processing 13661 it. It creates a new context with contextID 2. It adds the physical 13662 termination TermB to that context and start processing the descriptor 13663 specified in the command. The signal descriptor lists "ring" signal 13664 to be applied on the termination. The event descriptor lists the 13665 off hook event. The RGW2 creates an ephemeral termination with 13666 TerminationId EphB. The local information is under-specified from 13667 the MGC2. The RGW2 allocates the necessary resources for processing the 13668 media descriptor for the ephemeral termination. The RGW2 creates an 13669 SVC connection using the "eecid" specified in the remote descrptor. The 13670 RGW2 as indicated by the MGC that an SVC is to be used as the 13671 flag is on in the Local SDP information. 13672 The RGW2 responds to MGC2 with the following transaction reply. 13674 Step 12 13675 RGW2 to MGC2: 13676 MEGACO/1 [207.176.47.90]: 26000 13677 Reply = 1237 { 13678 Context = 2 { 13679 Add = TermB, 13680 Add = EphB{ 13681 Media { 13682 Local { 13683 v=0 13684 o=- 2873397714 0 ATM 13685 NSAP 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13686 s=- 13687 c=ATM NSAP 13688 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13689 t=0 0 13690 m=audio - AAL2/ITU 8 13691 } 13692 } 13693 } 13694 } 13695 } 13697 The MGC2 waits for the UserB to go offhook. Once the UserB goes offhook, 13698 RGW2 reports the notification of the offhook event to the MGC2. 13700 Step 13 13701 RGW2 to MGC2: 13702 MEGACO/1 [207.176.47.90]: 26000 13703 Transaction = 3000 { 13704 Context = 2 { 13705 Notify = TermB {ObservedEvents =1234 { 13706 20000202T10020000:al/of}} 13707 } 13708 } 13709 The MGC2 responds to the RGW2 with the Notify response. 13711 Step 14 13712 MGC2 to RGW2: 13713 MEGACO/1 [216.33.33.60]: 27000 13714 Reply = 3000 { 13715 Context = 2 {Notify = TermB} 13716 } 13717 The MGC2 generates a transaction towards RGW2 with two commands in one 13718 action. It changes the mode of both the terminations to sendrecv. The 13719 Signal descriptor of the Modify command for the first termination, 13720 stops the ring signal already applied on the termination and the event 13721 descriptor lists the onhook event. 13723 Step 15: 13724 MGC to MG2: 13725 MEGACO/1 [216.33.33.60]: 27000 13726 Transaction = 1238 { 13727 Context = 2 { 13728 Modify = TermB { 13729 Signals { } ; to turn off ringing 13730 Events = 1235 {al/on}, 13731 Media { 13733 LocalControl { 13734 Mode = SendRecv, 13735 } 13736 } 13737 } 13738 Modify = EphB{ 13739 Media { 13740 LocalControl { 13741 Mode = SendRecv, 13742 } 13743 } 13744 } 13745 } 13747 The MG2 responds to the request from MGC. 13749 Step 16 13750 RGW2 to MGC2: 13751 MEGACO/1 [207.176.47.90]: 26000 13752 Reply = 1238 { 13753 Context = 2 {Modify = TermB , Modify = EphB} 13754 } 13756 The MGC2 generates message to the MGC1 to indicate using the "eecid" 13757 sent earlier the SVC is created by the RGW2. The MGC1 generates a 13758 Modify message towards the RGW1 to stop the ringback tone and to report 13759 the remote SDP information for the ephemeral termination EphA. The mode 13760 of the two terminations TermA and EphA is set to send receive. 13762 Step 17 13763 MGC1 to RGW1: 13764 MEGACO/1 [216.33.33.61]: 27000 13765 Transaction = 1239 { 13766 Context = 1 { 13767 Modify = TermA { 13768 Media { 13769 LocalControl { 13770 Mode = sendrecv} 13771 } 13772 } 13773 Signals { } 13774 }, 13775 Modify = EphA { 13776 Media { 13777 LocalControl { 13778 Mode = sendrecv} 13779 Remote { 13780 v=0 13781 o=- 2873397714 0 ATM 13782 NSAP 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13783 s=- 13784 c=ATM NSAP 13785 47.0091.8100.0000.0040.2A74.EB03.0020.4421.2A04.00 13786 t=0 0 13787 m=audio - AAL2/ITU 8 13788 } 13790 } 13791 } 13792 } 13793 } 13794 } 13795 The empty signal descriptor in the Modify command for termination 13796 TermA, specifies to stop the ringback tone at the calling end. 13797 The mode is changed to send receive. RGW1 responds to the MGC1 with 13798 the response for the Modify commands. 13800 Step 18 13801 MG1 to MGC: 13802 MEGACO/1 [209.110.59.34]: 25000 13803 Reply = 1239 { 13804 Context = 1 {Modify = TermA, Modify = EphA} 13805 } 13806 The two users can exchange the media. The call can be termination 13807 either by the calling user or the called user. In this example it is 13808 assumed that the calling party has gone on-hook The UserA after the 13809 conversation goes onhook indicating the tearing down of the call. The 13810 same is reported in the Notify command from RGW1 to MGC1. 13812 Step 19 13813 RGW1 to MGC1: 13814 MEGACO/1 [209.110.59.34]:25000 13815 Transaction = 2002 { 13816 Context = 1 { 13817 Notify = TermA {ObservedEvents =1112 { 13818 20010202T10030000:al/on} 13819 } 13820 } 13821 The MGC1 responds to the MG1s Notify message. 13823 Step 20 13824 MGC1 to RGW1: 13825 MEGACO/1 [216.33.33.61]:27000 13826 Reply = 2002 { 13827 Context = 1 { 13828 Notify = TermA 13830 } 13831 } 13833 The MGC2 after receiving the information from MGC1, generates a Modify 13834 command towards the RGW2 for applying busy tone to the called 13835 subscriber. The mode of both terminations is set to receive only. 13837 Step 21 13838 MGC2 to RGW2: 13839 MEGACO/1 [216.33.33.60]: 27000 13840 Transaction = 1240 { 13841 Context = 2 { 13842 Modify = TermB { 13843 Signals {cg/bt} 13844 Media { 13845 LocalControl { 13846 Mode = recvonly} 13847 } 13848 }, 13849 Modify = EphB { 13850 Media { 13851 LocalControl { 13852 Mode = recvonly} 13853 } 13854 } 13855 } 13856 } 13857 } 13859 The RGW2 responds to this modify request. 13861 Step 22 13862 RGW2 to MGC2: 13863 MEGACO/1 [207.176.47.90]: 26000 13864 Reply = 1240 { 13865 Context = 2 { 13866 Modify= TermB, Modify = EphB} 13867 } 13869 The MGC1 generates transactions with two subtracts commands one for 13870 physical and other for ephemeral terminations. 13872 Step 23: 13873 MGC1 to RGW1 13874 MEGACO/1 [216.33.33.61]: 27000 13875 Transaction = 1241 { 13876 Context = 1 { 13877 Subtract = TermA {Audit{ }}, 13879 Internet-Draft Megaco/H.248 Call flow examples No 13880 vember2004 13882 Subtract = EphA {Audit{Statistics}} 13883 } 13884 } 13885 The RGW1 subtracts the two terminations from the context. The context 13886 itself is deleted with the subtract of the last termination from it. 13887 The RGW1 responds to this transaction from MGC1 with statistics on 13888 ephemeral termination. 13890 Step 24 13891 RGW1 to MGC1: 13892 MEGACO/1 [209.110.59.34]:25000 13893 Reply = 1241 { 13894 Context = 1 { 13895 Subtract = TermA 13896 Subtract = EphA { 13897 Statistics { 13898 rtp/ps=1234, ; packets sent 13899 nt/os=56789, ; octets sent 13900 rtp/pr=987, ; packets received 13901 nt/or=65432, ; octets received 13902 rtp/pl=10, ; % packets lost 13903 rtp/jit=30, 13904 rtp/delay=30 ; average latency 13905 } 13906 } 13907 } 13908 } 13910 The User B after going onhook, the RGW2 generates Notify command 13911 towards the MGC2. 13913 Step 25 13914 RGW2 to MGC2: 13915 MEGACO/1 [207.176.47.90]: 26000 13916 Transaction = 3001 { 13917 Context = 2 { 13918 Notify = TermB {ObservedEvents =1235 { 13919 20000202T10070000:al/on}} 13920 } 13921 } 13922 The MGC2 responds to the RGW2 with the Notify response. 13924 Step 26 13925 MGC2 to RGW2: 13926 MEGACO/1 [216.33.33.60]: 27000 13927 Reply = 3001 { 13928 Context = 2 {Notify = TermB} 13929 } 13931 The MGC2 generates subtract command towards RGW2 for removing TermB 13932 from valid context. 13934 Step 26 13935 MGC2 to RGW2: 13936 MEGACO/1 [216.33.33.61]: 27000 13937 Transaction = 1242 { 13938 Context = 2 { 13939 Subtract = TermB {Audit{ }}, 13940 Subtract = EphB {Audit{Statistics}} 13941 } 13942 } 13943 The RGW2 responds to the subtract commands generated by MGC2. 13945 Step 27 13946 RGW2 to MGC2: 13947 MEGACO/1 [207.176.47.89]:26000 13948 Reply = 1242 { 13949 Context = 2 { 13950 Subtract = TermB 13951 Subtract = EphB { 13952 Statistics { 13953 rtp/ps=987, ; packets sent 13954 nt/os=65432, ; octets sent 13955 rtp/pr=1234, ; packets received 13956 nt/or=56789, ; octets received 13957 rtp/pl=10, ; % packets lost 13958 rtp/jit=30, 13959 rtp/delay=30 ; average latency 13960 } 13961 } 13962 } 13963 } 13965 The two users UserA and UserB are ready for initiating/receiving further 13966 calls. 13968 Acknowledgements: 13969 The authors wish to thanks their colleagues at their respective companies and 13970 in the industry who have contributed towards the development of these call flow 13971 document and who have reviewed and sent valuable technical comments. Special 13972 thanks to Seshagiri Rao, Dutt Kalpatapu, Rajeev Khurana and Mathi Packiam for 13973 providing their timely comments. Basic call flows have been provided by the 13974 authors of the MGCP call flow document. Technical ideas/review comments have 13975 been provided by Mathi Packiam, Thillaivilagam Anand, Terry L Anderson, 13976 Jerry Wang, Al Varney, Sarika Gupta, Mehul Shah, Peter Michielsen, 13977 Nagakumar devarakonda, sugumar rajarathinam, Wang Julin, Raphel Tryster, 13978 Pramod Bhagath, Aleksandar Ryabin, Surapaneni Rao, vikas bajaj and Sasitharan R. 13980 Disclaimer of Validity 13982 This document and the information contained herein are provided on an 13983 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS 13984 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET 13985 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, 13986 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE 13987 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED 13988 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 13990 Copyright Statement 13992 Copyright (C) The Internet Society (2004). This document is subject 13993 to the rights, licenses and restrictions contained in BCP 78, and 13994 except as set forth therein, the authors retain all their rights. 13996 AUTHOR'S ADDRESS 13998 Madhubabu Brahmanapally 13999 Veraz Networks 14000 926 Rock Ave, 14001 San Jose, CA 95054 14002 Tel 408-750-8477 14003 Fax 408-546-0081 14004 Email: madhubabu@veraznet.com 14006 Prerepa Viswanadham 14007 1000 Marconi Drive 14008 Warrendale, PA 15086-7502 14009 Tel 724-742-6897 14010 Fax 724-742-6800 14011 Email : prerepa.viswanadham@marconi.com 14013 Krishna Gundamaraju 14014 ADC Telecommunications 14015 8 Technology Drive 14016 Westborough, MA 01581 14017 Tel 508-870-2572 14018 Fax 508-366-6513 14019 Email: krishna_gundamaraju@adc.com