idnits 2.17.1 draft-elliott-ipdc-media-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Cannot find the required boilerplate sections (Copyright, IPR, etc.) in this document. Expected boilerplate is as follows today (2024-04-18) according to https://trustee.ietf.org/license-info : IETF Trust Legal Provisions of 28-dec-2009, Section 6.a: This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 2: Copyright (c) 2024 IETF Trust and the persons identified as the document authors. All rights reserved. IETF Trust Legal Provisions of 28-dec-2009, Section 6.b(i), paragraph 3: This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories. == No 'Intended status' indicated for this document; assuming Proposed Standard == It seems as if not all pages are separated by form feeds - found 0 form feeds but 43 pages Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** 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.) ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 345 instances of weird spacing in the document. Is it really formatted ragged-right, rather than justified? ** There are 2 instances of too long lines in the document, the longest one being 4 characters in excess of 72. ** There is 1 instance of lines with control characters in the document. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 158: '... MUST...' RFC 2119 keyword, line 162: '... MUST NOT...' RFC 2119 keyword, line 166: '... SHOULD...' RFC 2119 keyword, line 172: '... MAY...' RFC 2119 keyword, line 175: '...lude this option MUST be prepared to i...' (36 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == Line 13 has weird spacing: '...ment is an I...' == Line 14 has weird spacing: '...cuments of t...' == Line 15 has weird spacing: '...ups may also ...' == Line 19 has weird spacing: '... and may be...' == Line 20 has weird spacing: '...me. It is i...' == (340 more instances...) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (August 1998) is 9378 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: '1' is defined on line 1924, but no explicit reference was found in the text == Unused Reference: '2' is defined on line 1927, but no explicit reference was found in the text == Unused Reference: '4' is defined on line 1933, but no explicit reference was found in the text == Unused Reference: '5' is defined on line 1936, but no explicit reference was found in the text == Unused Reference: '6' is defined on line 1939, but no explicit reference was found in the text == Unused Reference: '7' is defined on line 1942, but no explicit reference was found in the text == Outdated reference: A later version (-18) exists of draft-calhoun-diameter-04 -- Possible downref: Normative reference to a draft: ref. '1' == Outdated reference: A later version (-09) exists of draft-calhoun-diameter-framework-00 -- Possible downref: Normative reference to a draft: ref. '2' -- Possible downref: Normative reference to a draft: ref. '3' -- No information found for draft-dugan-ipdc-conn - is the name correct? -- Possible downref: Normative reference to a draft: ref. '4' -- No information found for draft-skran-ipdc-frame - is the name correct? -- Possible downref: Normative reference to a draft: ref. '5' -- No information found for draft-pickett-ipdc-mgmt - is the name correct? -- Possible downref: Normative reference to a draft: ref. '6' -- No information found for draft-bell-ipdc-sig - is the name correct? -- Possible downref: Normative reference to a draft: ref. '7' Summary: 12 errors (**), 0 flaws (~~), 16 warnings (==), 13 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET DRAFT Isaac K. Elliott 3 Level 3 Communications 4 Title: draft-elliott-ipdc-media-00.txt 5 Date: August 1998 7 IPDC 8 Media Control Protocol 9 11 Status of this Memo 13 This document is an Internet-Draft. Internet-Drafts are working 14 documents of the Internet Engineering Task Force (IETF), its areas, 15 and its working groups. Note that other groups may also distribute 16 working documents as Internet-Drafts. 18 Internet-Drafts are draft documents valid for a maximum of six months 19 and may be updated, replaced, or obsoleted by other documents at any 20 time. It is inappropriate to use Internet-Drafts as reference 21 material or to cite them other than as ``work in progress.'' 23 To learn the current status of any Internet-Draft, please check the 24 ``1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow 25 Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), 26 munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or 27 ftp.isi.edu (US West Coast). 29 Abstract 31 The protocol described in this document is a member of the IP Device 32 Control (IPDC) family of protocols. The IPDC protocols are proposed 33 as a protocol suite, components of which can be used individually or 34 together to perform connection control, media control, and signaling 35 transport for environments where the service control logic is 36 separated from the network access server. Please see the references 37 section for other IPDC documents. 39 The protocol specification presented here is intended for use between 40 a media gateway controller and a media gateway. The media gateway 41 may be capable of acting as a voice over IP gateway, voice over ATM 42 gateway, dialup modem media gateway, circuit switch, or cross- 43 connect. Using the IP Media Control protocol presented here, the 44 media gateway controller can send messages to the media gateway to 45 cause events such as tones to be generated or detected within a media 46 stream. 48 Table of Contents 50 1 INTRODUCTION 51 1.1 BACKGROUND 52 2 IP MEDIA CONTROL FRAMEWORK OVERVIEW 53 3 PROTOCOL DEFINITION 54 3.1 SPECIFICATION OF REQUIREMENTS 55 3.2 MESSAGES 56 3.2.1 RQST - Media Control Request 57 3.2.2 NOTI - Media Event Notification 58 3.2.3 Reset 59 3.2.4 Script Query 60 3.2.5 Script Query Response 61 3.3 ATTRIBUTE VALUE PAIRS 62 3.3.1 Event Script AVP 63 3.3.2 Script Type AVP 64 3.3.3 Symbol Set AVP 65 3.3.4 Buffer Size AVP 66 3.3.5 Event Buffer AVP 67 3.3.6 Correlator ID AVP 68 3.3.7 Source Endpoint AVP 69 3.3.8 Correlator ID List AVP 70 3.4 SCRIPTING LANGUAGE 71 3.5 SYMBOL SET 72 3.6 EXAMPLES 73 3.6.1 Patterns 74 3.6.2 Pattern and Action Pairs 75 4 SECURITY CONSIDERATIONS 76 5 RIGHTS AND PERMISSIONS 77 6 REFERENCES 78 7 ACKNOWLEDGMENTS 79 8 AUTHOR'S ADDRESS 81 1 Introduction 83 The protocol specification presented here is intended for use between 84 a media gateway controller and a media gateway. The media gateway 85 may be capable of acting as a voice over IP gateway, voice over ATM 86 gateway, dialup modem media gateway, circuit switch, or cross- 87 connect. Using the IP Media Control protocol presented here, the 88 media gateway controller can send messages to the media gateway to 89 cause events to be generated or detected within a media stream. 91 1.1 Background 93 This protocol is part of the IP Device Control (IPDC) family of 94 protocols. The IPDC protocols have been proposed as a protocol suite 95 which can be used individually or together to perform connection 96 control, media control, and signaling transport for environments 97 where the service control logic is separated from the network media 98 gateway . Please see the references section for other IPDC 99 documents. 101 In many public and private telecommunications environments in-band 102 media events and other events associated with bearer channels are 103 used to signal actions of significance to the service logic layer. 104 Examples include: 105 * Ringing 106 * Busy Signals 107 * Call Waiting Tones 108 * Flash-hook 109 * DTMF Tone Dialing 110 * MF Tone Dialing 111 * Circuit Seizure 112 * On Hook 113 * Off Hook 114 * Fax Tones 115 * Modem Tones 117 If service logic is removed from the device which processes the media 118 path for a telephone, fax, or modem call, then a protocol must be 119 introduced for controlling the detection and generation of events in 120 the device. IPMC proposes a protocol to fill this need. 122 2 IP Media Control Framework Overview 124 The IPMC Framework consists of three parts: 125 * Messages for sending and receiving media control information 126 between the controller and the media gateway. 128 * A scripting language for creating instructions for the media 129 gateway to detect or generate events. Scripts are sent to the 130 media gateway from the controller within an IPMC message. The 131 scripts instruct the media gateway to do anything from detecting a 132 single event to executing an entire call model. Also, scripts can 133 instruct the media gateway to find a URL representing a Java 134 applet to execute, which allows scripts to reach an almost 135 infinite level of control and specificity. 137 * Symbols used in the scripting language and in event reporting to 138 represent media events detected or generated. Although an 139 introductory symbol set is presented in this document, the 140 protocol defined here allows for different symbol sets to be used. 142 Because there are many different in-band signaling environments 143 presently in use in telecommunications networks around the world, the 144 IPMC framework also contains a concept of packages. Packages are 145 groupings of all of the symbols required for a particular kind of 146 line interface. Packages can also be adapted to represent ISDN 147 signaling in terms of media events, if an interworking function is 148 implemented in an media gateway to convert the ISDN messages to media 149 event reports. 151 3 Protocol Definition 153 3.1 Specification of Requirements 155 In this document, several words are used to signify the requirements 156 of the specification. These words are often capitalized. 158 MUST 159 THIS WORD, OR THE ADJECTIVE "REQUIRED", MEANS THAT THE DEFINITION 160 IS AN ABSOLUTE REQUIREMENT OF THE SPECIFICATION. 162 MUST NOT 163 This phrase means that the definition is an absolute prohibition 164 of the specification. 166 SHOULD 167 This word, or the adjective "recommended", means there may exist 168 valid reasons in particular circumstances to ignore this item, but 169 the full implications must be understood and carefully weighed 170 before choosing a different course. 172 MAY 173 This word, or the adjective "optional", means that this item is 174 one of an allowed set of alternatives. An implementation which 175 does not include this option MUST be prepared to interoperate with 176 another implementation which does include the option. 178 3.2 Messages 180 There are only five new messages in IP Media Control: 182 * Request - sent from the controller to the media gateway to 183 define the events which the media gateway should detect and 184 report, and also to instruct the media gateway to generate events. 185 Events to generate and detect are defined in terms of the 186 scripting language 188 * Notification - sent from the media gateway to the controller to 189 indicate a requested event has been detected. 191 * Reset - sent from the media gateway controller to media gateway 192 to halt execution for all scripts on an endpoint or set of 193 endpoints. 195 * Script Query - sent from the media gateway controller to media 196 gateway to ask for the list of scripts executing on an endpoint. 198 * Script Query Response - sent from the media gateway to the media 199 gateway controller to provide the list of scripts executing on an 200 endpoint. Query and Query Response are useful in situations where 201 the primary media gateway controller has failed and a secondary 202 media gateway controller is taking over control responsibility. 204 IPMC messages are constructed in the same way as any IPDC message, 205 using a standard header followed by Attribute-Value pairs. The 206 standard header and required AVP information may be found in the IPDC 207 Base Protocol Document [3]. 209 Note that many of the IPMC messages must be acknowledged using a 210 standard IPDC acknowledgment. The Command Acknowledge message is 211 described in more detail in the IPDC Base Protocol document [3]. 213 3.2.1 RQST - Media Control Request 215 Description 217 This message is sent from the media gateway controller to the media 218 gateway to indicate that the media gateway should notify the media 219 gateway controller of the events indicated by the Event Script 220 parameter. The media gateway MUST stop an executing script when the 221 media gateway conroller sends a Request message with the same 222 correlator ID and an empty (zero length) Event Script AVP. The media 223 gateway MUST replace an executing script with a different script when 224 the media gateway controller sends a Request message with the same 225 correlator ID and a new script. 227 The Request message initiates a transaction, and the transaction is 228 completed when the media gateway sends an IPDC Command Ack or Message 229 Reject with the same transaction ID to the media gateway controller. 230 If the media gateway can execute the script given in the Event Script 231 AVP of a Request message, then the media gateway MUST respond by 232 sending a Command Ack message to the media gateway controller. If 233 the media gateway cannot execute the script given in the Event Script 234 AVP of a Request message, then the media gateway MUST respond by 235 sending a Message Reject message to the media gateway controller. 237 Multiple Request messages may be sent for the same endpoint at the 238 same time. The responses are indexed according to the correlation 239 Ids of the Request message. If the media gateway cannot support 240 multiple simultaneous requests for the same endpoint, then the media 241 gateway MUST send a Message Reject in response to a redundant 242 Request. 244 0 1 2 3 245 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 246 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 247 | | 248 | Message Header | 249 | | 250 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 251 | Diameter Command AVP Code | 252 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 253 | AVP Length | Reserved |P|T|V|E|H|M| 254 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 255 | Media Control Request Command Code | 256 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 257 | | 258 | Transaction Originator AVP | 259 | | 260 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 261 | | 262 | Source Endpoint AVP | 263 | | 264 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 265 | | 266 | Event Script AVP | 267 | | 268 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 269 | | 270 | Correlator ID AVP | 271 | | 272 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 273 | | 274 | Script Type AVP | 275 | | 276 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 277 | | 278 | Symbol Set AVP | 279 | | 280 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 281 | | 282 | Maximum Buffer Size AVP | 283 | | 284 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 285 | | 286 | Connection ID AVP | 287 | | 288 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 290 AVP Code 291 256 DIAMETER-Command 293 AVP Length 294 The length of this attribute MUST be at exactly 12. 296 Reserved 297 The Reserved field MUST be set to zero (0). 299 AVP Flags 300 As per IPDC defaults. 302 Command Code 303 1400 Media Control Request 305 Transaction Originator AVP 306 The identity of the initiator of the transaction. This is a 307 required parameter for all IPDC protocol messages. 309 Source Endpoint AVP 310 For the source endpoint(s) which this command will control. This 311 AVP is of type IPDC-Reference, in the format specified in [3]. 312 This is a required parameter. 314 Event Script AVP 315 The script is an ASCII text string of variable length, formatted 316 according to the scripting language defined by the script type 317 parameter. This is a required parameter. 319 Correlator ID AVP 320 The Correlator ID AVP is a unique number assigned by the Media 321 Gateway Controller which allows the matching of Requests with 322 corresponding Notifications. This is a required parameter. 324 Script Type AVP 325 This parameter specifies the script type used in the event script. 326 The script type presented in this document is script type 1, and 327 is the default if this parameter is not specified. This is an 328 optional parameter. 330 Symbol Set AVP 331 The symbol set used in the script may be specified as well. The 332 symbol set defined in this document is symbol set 1, and is the 333 default if this parameter is not specified. This is an optional 334 parameter. 336 Maximum Buffer Size AVP 337 The Buffer Size AVP is an optional parameter which specifies the 338 maximum size of the event buffer to be sent to the media gateway 339 controller. If the media gateway has filled the event buffer 340 before the script indicates that the buffer should be reported, 341 then the expected media gateway behavior is to report the full 342 buffer to the soft switch and then start a new event buffer to 343 hold any new event indications. If parameter is not specified, 344 default buffer size is 512 bytes. 346 Connection ID AVP 347 If a connection is active for the endpoint then the media gateway 348 controller MAY include the connection ID field in the Media 349 Control Request message. Note that the Connection ID field is 350 optional in the RQST. In many cases, a request is made when a 351 connection has not been created, and in other cases more than one 352 Connection ID may be open for the endpoint. If the media gateway 353 sends a Notification message in the context of a connection, the 354 connection ID MAY be sent with the notification message. 356 3.2.2 NOTI - Media Event Notification 358 Description 360 This message is sent from the media gateway to the media gateway 361 controller to indicate the occurrence of requested events. 363 The Notification message initiates a transaction, and the transaction 364 is completed when the media gateway controller sends an IPDC Command 365 Ack or Message Reject with the same transaction ID to the media 366 gateway. If the media gateway controller can accept the Notification 367 message, then the media gateway controller MUST respond by sending a 368 Command Ack message to the media gateway. If the media gateway 369 controller cannot accept the Notification message, then the media 370 gateway controller MUST respond by sending a Message Reject message 371 to the media gateway. 373 0 1 2 3 374 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 375 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 376 | | 377 | Message Header | 378 | | 379 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 380 | Diameter Command AVP Code | 381 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 382 | AVP Length | Reserved |P|T|V|E|H|M| 383 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 384 | Media Event Notification Command Code | 385 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 386 | | 387 | Transaction Originator AVP | 388 | | 389 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 390 | | 391 | Source Endpoint AVP | 392 | | 393 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 394 | | 395 | Event Buffer AVP | 396 | | 397 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 398 | | 399 | Correlator ID AVP | 400 | | 401 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 402 | | 403 | Connection ID AVP | 404 | | 405 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 407 AVP Code 408 256 DIAMETER-Command 410 AVP Length 411 The length of this attribute MUST be at exactly 12. 413 Reserved 414 The Reserved field MUST be set to zero (0). 416 AVP Flags 417 As per IPDC defaults. 419 Command Code 420 1401 Media Event Notification 422 Transaction Originator AVP 423 The identity of the initiator of the transaction. This is a 424 required parameter for all IPDC protocol messages. 426 Source Endpoint AVP 427 The source endpoint for which this event notification is being 428 sent. This AVP is of type IPDC-Reference, in the format specified 429 in [3]. This is a required parameter. 431 Event Buffer AVP 432 The event buffer is an ASCII text string of variable length, 433 formatted according to reportable symbol set defined by the symbol 434 set parameter from the Media Control Request message. This is a 435 required parameter 437 Correlator ID AVP 438 The Correlator ID AVP matches the Correlator ID given in the 439 corresponding Media Control Request message, so that each 440 notification may be matched with the request. This is a required 441 parameter. 443 Connection ID AVP 444 If a connection is active for the endpoint then the media gateway 445 MAY include the connection ID field in the Media Event 446 Notification message. The Connection ID field is optional in the 447 NOTI. In many cases, a notification is sent when a connection has 448 not been created, and in other cases more than one Connection ID 449 may be open for the endpoint. If the media gateway sends a 450 Notification message in the context of a connection, the 451 connection ID MAY be sent with the notification message. 453 3.2.3 Reset 455 Description 457 This message is sent from the media gateway controller to the media 458 gateway to cause all running scripts on the given endpoint(s) to stop 459 executing. 461 The Reset message initiates a transaction, and the transaction is 462 completed when the media gateway sends an IPDC Command Ack or Message 463 Reject with the same transaction ID to the media gateway controller. 464 If the media gateway can accept the Reset message, then the media 465 gateway MUST respond by sending a Command Ack message to the media 466 gateway controller. If the media gateway cannot accept the Reset 467 message, then the media gateway MUST respond by sending a Message 468 Reject message to the media gateway controller. 470 0 1 2 3 471 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 472 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 473 | | 474 | Message Header | 475 | | 476 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 477 | Diameter Command AVP Code | 478 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 479 | AVP Length | Reserved |P|T|V|E|H|M| 480 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 481 | Reset Command Code | 482 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 483 | | 484 | Transaction Originator Host-Name AVP | 485 | | 486 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 487 | | 488 | Source Endpoint AVP | 489 | | 490 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 492 AVP Code 493 256 DIAMETER-Command 495 AVP Length 496 The length of this attribute MUST be at exactly 12. 498 Reserved 499 The Reserved field MUST be set to zero (0). 501 AVP Flags 502 As per IPDC defaults. 504 Command Code 505 1402 Reset 507 Transaction Originator Host Name AVP 508 The host name of the initiator of the transaction. This is a 509 required parameter for all IPDC protocol messages. 511 Source Endpoint AVP 512 The source endpoint for which executing scripts should be stopped. 513 This AVP is of type IPDC-Reference, in the format specified in 514 [3]. This is a required parameter. 516 3.2.4 Script Query 518 Description 520 This message is sent from the media gateway controller to the media 521 gateway to query running script correlator IDs for the scripts 522 running on an endpoint. 524 The Script Query message initiates a transaction, and the transaction 525 is completed when the media gateway sends an IPDC Script Query 526 Response or Message Reject with the same transaction ID to the media 527 gateway controller. If the media gateway can accept the Query 528 message, then the media gateway MUST respond by sending a Script 529 Query Response message to the media gateway controller. If the media 530 gateway cannot accept the Script Query message, then the media 531 gateway MUST respond by sending a Message Reject message to the media 532 gateway controller. 534 0 1 2 3 535 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 536 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 537 | | 538 | Message Header | 539 | | 540 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 541 | Diameter Command AVP Code | 542 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 543 | AVP Length | Reserved |P|T|V|E|H|M| 544 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 545 | Script Query Command Code | 546 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 547 | | 548 | Transaction Originator Host-Name AVP | 549 | | 550 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 551 | | 552 | Source Endpoint AVP | 553 | | 554 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 556 AVP Code 557 256 DIAMETER-Command 559 AVP Length 560 The length of this attribute MUST be at exactly 12. 562 Reserved 563 The Reserved field MUST be set to zero (0). 565 AVP Flags 566 As per IPDC defaults. 568 Command Code 569 1403 Script Query 571 Transaction Originator Host Name AVP 572 The host name of the initiator of the transaction. This is a 573 required parameter for all IPDC protocol messages. 575 Source Endpoint AVP 576 The source endpoint for which executing scripts should be 577 reported. This AVP is of type IPDC-Reference, in the format 578 specified in [3]. The use of wild-carding in the Script Query 579 message is for further study. This is a required parameter. 581 3.2.5 Script Query Response 583 Description 585 This message is sent from the media gateway to the media gateway 586 controller to return running script correlator IDs for the scripts 587 running on an endpoint. 589 The Script Query message initiates a transaction, and the transaction 590 is completed when the media gateway sends an IPDC Script Query 591 Response or Message Reject with the same transaction ID to the media 592 gateway controller. If the media gateway can accept the Script Query 593 message, then the media gateway MUST respond by sending a Script 594 Query Response message to the media gateway controller. If the media 595 gateway cannot accept the Script Query message, then the media 596 gateway MUST respond by sending a Message Reject message to the media 597 gateway controller. 599 0 1 2 3 600 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 601 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 602 | | 603 | Message Header | 604 | | 605 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 606 | Diameter Command AVP Code | 607 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 608 | AVP Length | Reserved |P|T|V|E|H|M| 609 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 610 | Script Query Response Command Code | 611 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 612 | | 613 | Transaction Originator Host-Name AVP | 614 | | 615 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 616 | | 617 | Source Endpoint AVP | 618 | | 619 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 620 | | 621 | Correlator ID List AVP | 622 | | 623 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 625 AVP Code 626 256 DIAMETER-Command 628 AVP Length 629 The length of this attribute MUST be at exactly 12. 631 Reserved 632 The Reserved field MUST be set to zero (0). 634 AVP Flags 635 As per IPDC defaults. 637 Command Code 638 1404 Script Query Response 640 Transaction Originator Host Name AVP 641 The host name of the initiator of the transaction. This is a 642 required parameter for all IPDC protocol messages. 644 Source Endpoint AVP 645 The source endpoint for which executing scripts should be 646 reported. This AVP is of type IPDC-Reference, in the format 647 specified in [3]. This is a required parameter. 649 Correlator ID List AVP 650 This parameter contains one or more Correlator Ids for the scripts 651 running on the endpoint. This is a required parameter. 653 3.3 Attribute Value Pairs 655 3.3.1 Event Script AVP 657 Description 659 The Event Script AVP contains a media control script for execution at 660 one or more specified endpoints within the media gateway. This AVP 661 is passed to the media gateway along with AVPs which specify the 662 scripting language and symbol set used by the script. 664 AVP Format 666 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 667 | AVP Code | 668 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 669 | AVP Length | Reserved |P|T|V|E|H|M| 670 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 671 | Event Script ... 672 +=+=+=+=+=+=+=+=+=+ 674 AVP Code 675 1500 Event Script 677 AVP Length 678 The length of this attribute MUST be at least 8 bytes to 679 accommodate 8 bytes of AVP header information. 681 AVP Flags 682 As per IPDC defaults. 684 Event Script 685 The Event Script field is of type String and contains an endpoint 686 media control script which uses a given scripting language and 687 symbol set. 689 3.3.2 Script Type AVP 691 Description 693 The Script Type AVP indicates the scripting language used for a media 694 control script. This AVP is passed to the media gateway along with 695 AVPs which specify the script itself and the symbol set used by the 696 script. 698 AVP Format 700 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 701 | AVP Code | 702 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 703 | AVP Length | Reserved |P|T|V|E|H|M| 704 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 705 | Script Type | 706 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 708 AVP Code 709 1501 Script Type 711 AVP Length 712 The length of this attribute MUST be 12 bytes. 714 AVP Flags 715 As per IPDC defaults. 717 Script Type 718 The Script Type field is of type Integer32, and indicates the type 719 of an event script. The only script type currently defined is: 721 1 IPMC scripting language 722 The IPMC script type defined in this document in the section 723 entitled "Scripting Language". 725 3.3.3 Symbol Set AVP 727 Description 729 The Symbol Set AVP indicates the scripting symbol set used for a 730 media control script. This AVP is passed to the media gateway along 731 with AVPs which specify the script itself and the scripting language 732 used by the script. 734 AVP Format 736 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 737 | AVP Code | 738 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 739 | AVP Length | Reserved |P|T|V|E|H|M| 740 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 741 | Symbol Set | 742 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 744 AVP Code 745 1502 Symbol Set 747 AVP Length 748 The length of this attribute MUST be 12 bytes. 750 AVP Flags 751 As per IPDC defaults. 753 Script Type 754 The Symbol Set field is of type Integer32, and indicates the 755 symbol set used in an event script. The only symbol set currently 756 defined is: 758 1 IPMC symbol set 759 The IPMC symbol set defined in this document in the section 760 entitled "Symbol Set". 762 3.3.4 Buffer Size AVP 764 Description 766 The Buffer Size AVP is used to tell the media gateway the maximum 767 size of the event buffer to be returned to the media gateway 768 controller in an Event Notification message. It is passed to the 769 media gateway along with the script which will generate those 770 notifications. 772 AVP Format 774 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 775 | AVP Code | 776 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 777 | AVP Length | Reserved |P|T|V|E|H|M| 778 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 779 | Buffer Size | 780 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 782 AVP Code 783 1503 Buffer Size 785 AVP Length 786 The length of this attribute MUST be 12 bytes. 788 AVP Flags 789 As per IPDC defaults. 791 Buffer Size 792 The Buffer Size field is of type Integer32, and contains the 793 maximum size of the event buffer to be returned to the media 794 gateway controller in an Event Notification message. 796 3.3.5 Event Buffer AVP 798 Description 800 The Event Buffer is used report to the media gateway controller 801 signals detected in an media gateway in accordance with a previously 802 downloaded script. It is returned to the media gateway controller in 803 an Event Notification message. 805 AVP Format 807 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 808 | AVP Code | 809 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 810 | AVP Length | Reserved |P|T|V|E|H|M| 811 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 812 | Event Buffer ... 813 +=+=+=+=+=+=+=+=+=+ 815 AVP Code 816 1504 Event Buffer 818 AVP Length 819 The length of this attribute MUST be at least 8 bytes. 821 AVP Flags 822 As per IPDC defaults. 824 Event Buffer 825 The Event Buffer is of type String and contains a record of events 826 detected at a specific endpoint within a media gateway. The 827 symbol set used is that specified in the original request. The 828 maximum extent of the contents of the Event Buffer were also 829 passed in that request. 831 3.3.6 Correlator ID AVP 833 Description 834 The Correlator ID is used match Requests and corresponding 835 Notifications in the IPMC protocol. Correlator IDs are expected to 836 be unique within a session between a media gateway controller and a 837 media gateway. 839 AVP Format 841 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 842 | AVP Code | 843 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 844 | AVP Length | Reserved |P|T|V|E|H|M| 845 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 846 | Correlator ID | 847 +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 849 AVP Code 850 1505 Correlator ID 852 AVP Length 853 The length of this attribute MUST be 12 bytes. 855 AVP Flags 856 As per IPDC defaults. 858 Correlator ID 859 The Correlator ID field is of type Integer32, and contains a value 860 which identifies a specific media control request. 862 3.3.7 Source Endpoint AVP 864 Description 866 The Source Endpoint AVP identifies one or (through wild-carding) a 867 set of endpoints within the media gateway, to which a given media 868 control script. It is also used in Event Notification messages to 869 identify the endpoint for which an event report is being returned. 871 The Source Endpoint AVP is an instance of the IPDC Reference template 872 documented in [3]. 874 AVP Format 876 0 1 2 3 877 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 878 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 879 | AVP Code | 880 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 881 | AVP Length | Reserved |P|T|V|E|H|M| 882 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 883 | Entity Type Code | 884 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 885 | Source Endpoint Name ... 886 +-+-+-+-+-+-+-+-+-+-+- 888 AVP Code 889 1506 Source Endpoint 891 AVP Length 892 The length of this attribute MUST be at least 13 bytes. 894 AVP Flags 895 As per IPDC defaults. 897 Entity Type Code 898 See documentation of the IPDC Reference in [3]. The permitted 899 IPDC Entity Type Codes for the Source Endpoint AVP are: 900 ACCESS_TERMINATION (5) 901 TRUNK_TERMINATION (6) 902 DEVICE (8) 903 MODEM (9) 904 CONFERENCE_PORT (10) 905 FAX_PORT (11) 906 STREAM_SOURCE (12) 907 STREAM_RECORDER (13) 908 RTP_PORT (14) 909 ATM_SPEC (15) 911 Source Endpoint Name 912 The Source Endpoint Name identifies the endpoint in the media 913 gateway which is being addressed with an IPMC command. See [3] 914 for IPDC Reference naming syntax. 916 3.3.8 Correlator ID List AVP 918 Description 920 The Correlator ID List is returned in a Script Query Response. It 921 identifies the scripts running at the endpoint identified in the 922 Script Query. 924 AVP Format 926 0 1 2 3 927 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 928 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 929 | AVP Code | 930 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 931 | AVP Length | Reserved |P|T|V|E|H|M| 932 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 933 | | 934 +-+-+-+-+-+-+-+-+ Correlator +-+-+-+-+-+-+-+-+ 935 | IDs | 936 +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ 937 | ... | 939 AVP Code 940 1507 Correlator ID List 942 AVP Length 943 The length of this attribute MUST be at least 8 bytes to 944 accommodate 8 bytes of header information. The length of this 945 attribute must be evenly divisible by 4. 947 AVP Flags 948 As per IPDC defaults. 950 Correlator IDs 951 The Correlator IDs field consists of a list of zero or more 952 Integer32 Correlator Ids of scripts running on a given endpoint. 953 The number of Correlator Ids in the list is (AVP Length - 8) / 4, 954 assuming that the AVP Header is 8 bytes long. 956 3.4 Scripting Language 958 The scripting language presented here is a text-based language 959 consisting of very few command constructs. The language allows the 960 specification of a pattern the media gateway is instructed to detect, 961 followed by the list of actions the media gateway is to take once the 962 pattern is detected. Additional detection patterns may be nested 963 inside of an action list. Also, there is a loop construct, allowing 964 entire call models to be delivered to an media gateway , so that a 965 single Request for Notification message can download the entire 966 "program" which will run for an endpoint continuously, until 967 replaced. 969 The basic operators are as follows: 971 [ , ] Square brackets enclose a pattern and action pair. 972 Everything prior to the comma is considered the pattern to be 973 matched. Everything following the comma is considered the action 974 to take once the pattern is matched. 976 { } Anything appearing within the curved brackets will 977 be repeated forever. 979 _number{ } Anything appearing within the curved brackets will 980 be repeated "number" times. 982 => Exit the current Loop. 984 ( ) Parenthesis are used for grouping 985 sequences of patterns and actions which should be considered a 986 unit. 988 | The OR operator allows more than one 989 pattern to be tried at the same time. [Possible side effects are 990 for further study.] 992 ! The NOT operator allows any action or pattern to be 993 inverted. For example, !/M/ means to un-mute the channel. 995 < specifies the incoming channel (default for 996 pattern matching). 998 > specifies the outgoing channel (default for 999 actions). 1001 ^^ used within an action list to tell the media 1002 gateway to report the current event buffer to the soft switch. 1004 ^(event list)^ used within an action list to tell the media 1005 gateway to report the current event buffer but report only the 1006 items listed within the enclosed event list. 1008 ^!(event list)^ used within an action list to tell the 1009 media gateway to report the current event buffer but filter out 1010 the items in the enclosed event list. 1012 $ clear the event buffer. 1014 The basic form of a script employs the pattern and action operator 1015 only, as follows 1017 [ pattern list , action list ] 1019 The entire pattern and action pair may be repeated in an infinite 1020 loop by adding the curved brackets as follows 1022 { [ pattern list , action list ] } 1024 More than one pattern may be tried simultaneously as follows 1026 { 1027 [ pattern list , action list ] | 1028 [ pattern list , action list ] 1029 } 1031 Whitespace characters (space, carriage return, line feed, and tab) 1032 are ignored in the language. They may be used to enhance readability 1033 wherever desired. 1035 3.5 Symbol Set 1037 The IPMC protocol allows the media gateway controller to specify 1038 which symbol set is being used in the script that is being sent to 1039 the media gateway . If the media gateway controller sends a Request 1040 for Notification which specifies a symbol set that the media gateway 1041 does not support, then the Media gateway must respond with a standard 1042 IPDC Message Reject message. 1044 At present, one symbol set is defined. The symbols represent events 1045 that can be detected or events that can be generated. 1047 Symbol Packages 1049 The symbols used in the pattern grammar are described below. The 1050 symbols are divided into packages so that media gateway suppliers can 1051 easily state the subset of the symbol set supported by the media 1052 gateway. Quotation marks delimit each symbol for purposes of 1053 documentation. The symbols in this symbol set are case-sensitive. 1055 The usage column in the table indicates where the symbol can be used. 1056 The three options are: 1057 * Pattern: the symbol may be used in pattern section of a script, 1058 between the [ and the first comma. 1060 * Action: the symbol may be used in the action section of the 1061 script, between the comma and the ]. 1063 * Report: the symbol may be used in a reported event buffer in an 1064 Event Notification (NOTI) message. 1066 A media gateway MAY support any of the packages below, and MUST 1067 support at least one of the packages. 1069 Wildcard Package 1070 ================ 1071 Event Symbol: "." 1073 Description 1074 Match anything at all 1076 Usage: Pattern 1078 DTMF Package 1079 ============ 1081 Event Symbol: "0" through "9" 1083 Description 1084 DTMF digits 0 through 9 respectively. 1086 Usage: Pattern, Action, Report 1088 Event Symbol: "#" 1090 Description 1091 DTMF # 1093 Usage: Pattern, Action, Report 1095 Event Symbol: "*" 1097 Description 1098 DTMF * 1100 Usage: Pattern, Action, Report 1102 Event Symbol: "X" 1104 Description 1105 Wildcard for any numeric DTMF digit 0 through 9. 1107 Usage: Pattern 1109 Event Symbol: "A" through "D" 1111 Description 1112 DTMF digits A through D. 1114 Usage: Pattern, Action, Report 1116 MF Package 1117 ========== 1118 Event Symbol: "+0+ through "+9" 1120 Description 1121 MF digits 0 through 9. 1123 Usage: Pattern, Action, Report 1125 Event Symbol: "+K0" through "+K2" 1127 Description 1128 MF K0/KP, K1, or K2 respectively. 1130 Usage: Pattern, Action, Report 1132 Event Symbol: "+S0" through "+S3" 1134 Description 1135 MF S0/ST, S1, S2, or S3 respectively. 1137 Usage: Pattern, Action, Report 1139 Event Symbol: "+X" 1141 Description 1142 Wildcard for any numeric MF digit, 0 through 9. 1144 Usage: Pattern 1146 Trunk Package 1147 ============= 1149 Event Symbol: "&w" 1151 Description 1152 Wink (a transition from unseized to seized to unseized trunk 1153 states within a specified period. Typical seizure period is 1154 100-350 msec.) 1156 Usage: Pattern, Action, Report 1158 Event Symbol: "&o" 1160 Description 1161 Wink off. 1163 Usage: Pattern, Action, Report 1165 Event Symbol: "&s" 1166 Description 1167 Incoming seizure (incoming indication of call attempt). 1169 Usage: Pattern, Action, Report 1171 Event Symbol: "&r" 1173 Description 1174 Return seizure (seizure in response to outgoing seizure). 1176 Usage: Pattern, Action, Report 1178 Event Symbol: "&c" 1180 Description 1181 Continuity Test using new tone. 1183 Usage: Pattern, Action, Report 1185 Event Symbol: "&l" 1187 Description 1188 Continuity Test using Loopback. 1190 Usage: Pattern, Action, Report 1192 Event Symbol: "&m" 1194 Description 1195 Old Milliwatt Tone (1000 Hz) 1197 Usage: Pattern, Action, Report 1199 Event Symbol: "&n" 1201 Description 1202 New Milliwatt Tone (1004 Hz) 1204 Usage: Pattern, Action, Report 1206 Event Symbol: "&t" 1208 Description 1209 105 Test Line test progress tone (2225 Hz + or - 25 Hz at -10 1210 dBm0 + or - 0.5dB) 1212 Usage: Pattern, Action, Report 1213 Event Symbol: "&z" 1215 Description 1216 No circuit (that annoying tri-tone, low to high). 1218 Usage: Pattern, Action, Report 1220 Event Symbol: "&a" 1222 Description 1223 Answer Supervision 1225 Usage: Pattern, Action, Report 1227 Event Symbol: "&k###" 1229 Description 1230 Announcement number ### 1232 Usage: Action 1234 Event Symbol: "&r" 1236 Description 1237 Reorder Tone (120 Impulses per minute tone) 1239 Usage: Pattern, Action, Report 1241 Line Package 1242 ============ 1244 Event Symbol: "o" 1246 Description 1247 Off hook 1249 Usage: Pattern, Action, Report 1251 Event Symbol: "h" 1253 Description 1254 On hook 1256 Usage: Pattern, Action, Report 1258 Event Symbol: "f" 1260 Description 1261 Flash hook 1263 Usage: Pattern, Action, Report 1265 Event Symbol: "a" 1267 Description 1268 Answer 1270 Usage: Pattern, Action, Report 1272 Event Symbol: "b" 1274 Description 1275 Busy 1277 Usage: Pattern, Action, Report 1279 Event Symbol: "c" 1281 Description 1282 Call Waiting tone 1284 Usage: Pattern, Action, Report 1286 Event Symbol: "d" 1288 Description 1289 Dial tone (350 + 440 Hz) 1291 Usage: Pattern, Action, Report 1293 Event Symbol: "n" 1295 Description 1296 Network busy (fast cycle busy) 1298 Usage: Pattern, Action, Report 1300 Event Symbol: "r" 1302 Description 1303 Ringing 1305 Usage: Pattern, Action, Report 1307 Event Symbol: "w" 1308 Description 1309 Ringback 1311 Usage: Pattern, Action, Report 1313 Event Symbol: "p" 1315 Description 1316 Prompt tone 1318 Usage: Pattern, Action, Report 1320 Event Symbol: "e" 1322 Description 1323 Error tone 1325 Usage: Pattern, Action, Report 1327 Event Symbol: "u" 1329 Description 1330 Stutter dialtone 1332 Usage: Pattern, Action, Report 1334 Event Symbol: "v" 1336 Description 1337 Alerting Tone (440 Hz Tone of 2 second duration followed by 1/2 1338 second of tone every 10 seconds) 1340 Usage: Pattern, Action, Report 1342 Event Symbol: "y" 1344 Description 1345 Recorder Warning Tone (1400 Hz of Tone of 0.5 second duration 1346 every 15 seconds) 1348 Usage: Pattern, Action, Report 1350 Event Symbol: "t" 1352 Description 1353 SIT tone, used for indicating a line is out of service 1355 Usage: Pattern, Action, Report 1356 Event Symbol: "z" 1358 Description 1359 Calling Card Service Tone (60 ms of 941 + 1477 Hz and 940 ms of 1360 350 + 440 Hz (dial tone), decaying exponentially with a time 1361 constant of 200 ms. 1363 Usage: Pattern, Action, Report 1365 Event Symbol: "s###" 1367 Description 1368 Distinctive tone pattern where ### is any number between 000 1369 and 999, inclusive. Can be used for distinctive ringing, 1370 customized dial tone, etc. 1372 Usage: Pattern, Action, Report 1374 Generic Media Package 1375 ===================== 1377 Event Symbol: "/modem/" 1379 Description 1380 Modem detected 1382 Usage: Pattern, Report 1384 Event Symbol: "/fax/" 1386 Description 1387 Fax tone detected 1389 Usage: Pattern, Report 1391 Event Symbol: "/###/" 1393 Description 1394 Pattern ### detected (can be used for specific algorithms such 1395 as answering machine detection, tone detection, and the like) 1397 Usage: Pattern, Action, Report 1399 RTP Package 1400 =========== 1402 Event Symbol: "/C##/" 1403 Description 1404 Codec changed to codec hexadecimal ##. Codec Numbers are 1405 specified in ietf-avt-profile-new-02.txt, dated November 20, 1406 1997. For reference, the values are reproduced here: 1407 01 1016 1408 02 DVI4 1409 03 G722 1410 04 G723 1411 05 G726-16 1412 06 G726-24 1413 07 G726-32 1414 08 G726-40 1415 09 G727-16 1416 0A G727-24 1417 0B G727-32 1418 0C G727-40 1419 0D G728 1420 0E G729 1421 0F GSM 1422 10 L8 1423 11 L16 1424 12 LPC 1425 13 MPA 1426 14 PCMA (G.711 A-law) 1427 15 PCMU (G.711 mu-law) 1428 16 RED 1429 17 SX7300P 1430 18 00P 1431 19 VDVI 1433 Usage: Action, Report 1435 Event Symbol: "/C/" 1437 Description 1438 Detect changes in codec used 1440 Usage: Pattern 1442 Event Symbol: "/D/" 1444 Description 1445 Dynamically negotiate payload type 1447 Usage: Action 1449 Event Symbol: "/S###/" 1450 Description 1451 Sampling rate changed to ### samples per second 1453 Usage: Action, Report 1455 Event Symbol: "/S/" 1457 Description 1458 Detect sampling rate changes 1460 Usage: Pattern 1462 Event Symbol: "/J###/" 1464 Description 1465 Jitter buffer size changed to ### milliseconds 1467 Usage: Action, Report 1469 Event Symbol: "/J/" 1471 Description 1472 Detect jitter buffer size changes 1474 Usage: Pattern 1476 Event Symbol: "/L####/" 1478 Description 1479 Packet loss exceeded #### packets per 100,000 1481 Usage: Report 1483 Event Symbol: "/L####&/" 1485 Description 1486 Detect packet loss threshold of #### per 100,000 exceeded 1488 Usage: Pattern, Action 1490 Audio Package 1491 ============= 1493 Event Symbol: "/P/" or "/P###.###?####/ 1495 Description 1496 Turn on silence suppression (note that the inverse of any of 1497 these actions can be achieved using the ! operator). ###.### value 1498 indicates the dB threshold beneath which the signal is considered 1499 silence. ?#### value indicates the length of time in milliseconds 1500 before silence suppression kicks in. 1502 Usage: Action, Report 1504 Event Symbol: "/N/" 1506 Description 1507 Turn on comfort noise generation 1509 Usage: Action 1511 Usage: Action 1513 Event Symbol: "/E/" 1515 Description 1516 Turn on echo cancellation 1518 Usage: Action 1520 Event Symbol: "/M/" 1522 Description 1523 Mute channel 1525 Usage: Pattern, Action, Report 1527 RADIUS Package 1528 ============== 1530 Event Symbol: "/R/" 1532 Description 1533 Detect or report RADIUS Authentication. When used as an 1534 action, the media gateway controller is requesting the media 1535 gateway to initiate RADIUS authentication processes 1537 Usage: Pattern, Action, Report 1539 Event Symbol: "/R-/" 1541 Description 1542 Detect or report RADIUS Rejection 1544 Usage: Pattern, Report 1546 Event Symbol: "/RC##########/" 1548 Description 1549 Detect or report RADIUS request for Callback and Callback 1550 number ##########. The callback number may be any length. 1552 Usage: Pattern, Report 1554 Timer Package 1555 ============= 1557 Event Symbol: "/T##?######/" 1559 Description 1560 Timer number ## set to expire in ###### milliseconds. This 1561 pattern is used in conjunction with the OR operator to allow a 1562 pattern to be detected with a certain time period or the timer 1563 will expire. 1565 Usage: Pattern, Report 1567 Event Symbol: "/P#####/" 1569 Description 1570 Pause for exactly ##### milliseconds 1572 Usage: Action 1574 IP Connection Control Package 1575 ============================= 1577 Event Symbol: "/ACR/" 1579 Description 1580 Detects "release channel completed" message sent from media 1581 gateway to media gateway controller. This provides a branch 1582 point for a release action on connection. 1584 Usage: Pattern, Report 1586 Event Symbol: "/ACON/" 1588 Description 1589 Detects "accept connection" message sent from media gateway to 1590 media gateway controller. This provides a branch point for a 1591 connection acceptance action on a connection. 1593 Usage: Pattern, Report 1595 Event Symbol: "/AMCN/" 1597 Description 1598 Detects "accept modify connection" message sent from media 1599 gateway to media gateway controller. This provides a branch 1600 point for a modify connection acceptance action on a 1601 connection. 1603 Usage: Pattern, Report 1605 ISDN Package 1606 ============ 1608 For further study. 1610 Java Package 1611 ============ 1613 Event Symbol: "@http://urlspec@" 1615 Description 1616 Tells the media gateway to retrieve a Java applet from the 1617 specified location and execute it on the specified endpoint or 1618 endpoints. 1620 Usage: Action 1622 Comment Package 1623 =============== 1625 Event Symbol: quotation marks (") enclosing text. 1627 Description 1628 Any text may appear between the quotes. The quotes and the 1629 comment are written into the event buffer wherever the comment 1630 appears within a script. The comment is included in the event 1631 buffer and reported to the media gateway controller along with 1632 the rest of the detected events. 1634 Usage: Action, Report 1636 Escape Character 1637 ================ 1639 Event Symbol: " 1641 Description 1642 Backslash used to tell the script execution engine in the media 1643 gateway to interpret the following character literally instead 1644 of as a command delimiter. 1646 Usage: Pattern, Action, Report 1648 Execution Control Package 1649 ========================= 1651 Event Symbol: "'LABEL'" 1653 Description 1654 Labels an entry point for a subroutine 1656 Usage: Pattern, Action 1658 Event Symbol: "~" 1660 Description 1661 Starts a script over from the beginning. 1663 Usage: Action 1665 Event Symbol: "@script-type://scriptname/optional-label@" 1667 Description 1668 Tells the media gateway to execute another script of the 1669 specified name. The optional label allows the calling of 1670 subroutines within the named script. Entry points for 1671 subroutines are indicated with the 'LABEL' construct. 1673 Definition of script-type is for further study. 1675 Usage: Action 1677 3.6 Examples 1679 3.6.1 Patterns 1681 Examples of legal patterns are: 1682 * 1234 The sequence of DTMF digits 1, 2, 3, and 4 must be 1683 detected 1685 * 555XXXX Three occurrences of DTMF digit 5, followed by any 1686 four DTMF digits, must be detected. 1688 A repeat count may be specified for a signal by the expression 1689 _num{pattern}, where num is a positive integer representing the 1690 number of repetitions. For example, 1691 _3{5} _4{X} 1692 describes the same pattern as the second bullet list pattern given 1693 above. 1695 A set of alternatives is represented by the expression 1696 alt1|alt2|alt3, where alt1, alt2, alt3 are signals or signal strings. 1697 For example, 1698 _7{(0|1|2|3|4|5|6|7|8|9)} 1699 represents 7 occurrences of any of the DTMF digits between 0 and 9, 1700 in any order. Another way to represent the same pattern is: 1701 _7{X} 1703 3.6.2 Pattern and Action Pairs 1705 Example 1: The pattern and action pair given below rings an analog 1706 line. 1708 [ , r ] 1710 Notice that no pattern is given prior to the comma, and only an 1711 action is given after the comma. If this pattern is sent to an media 1712 gateway in a Request command, then the media gateway simply plays 1713 ringing down the requested line or lines. 1715 Example 2: The pattern and action pair given below detects an analog 1716 line going off hook and reports it to the requesting media gateway 1717 controller. 1719 [ o , ^^ ] 1721 The pattern part (prior to the comma lists the off hook event, 1722 followed by the report operator in the action part of the script. 1724 Example 3: The media gateway controller requests call origination 1725 from an analog station connected to an media gateway which acts like 1726 a PBX, where dialing 9 selects an "outside line", and dialing any 1727 other initial digit assumes an internal 4-digit extension is being 1728 dialed. 1730 [ o , d 1731 [ 9 , !d [ (1XXXXXXXXXX) | (XXXXXXX) , ^^ ] ] 1732 | 1733 [ 0|1|2|3|4|5|6|7|8 , !d [XXX, ^^ ] ] 1734 ] 1736 This script nests multiple pattern and action pairs within a single 1737 script. New pattern/action pairs are nested within the action 1738 portions of the script. The first pattern to be matched is the off- 1739 hook pattern, o. Once this pattern is detected, the requested action 1740 is to play dialtone, d. Then the next action is to detect one of 1741 two possible patterns: if DTMF 9 is detected, the first pattern will 1742 be matched, but if any other DTMF Digit is detected, the second 1743 pattern will be matched. 1745 If DTMF 9 is detected, then dialtone is turned off with a !d. then, 1746 either a long distance or local number is collected, and the entire 1747 event buffer is reported to the media gateway controller. In this 1748 case, the event buffer will contain something like "o13035551212" 1749 where o represents off hook, and 13035551212 represents the long 1750 distance phone number dialed. 1752 If a DTMF digit other than 9 is detected, then three additional 1753 digits are collected, and the entire event buffer is reported to the 1754 media gateway controller. In this case, the event buffer will 1755 contain something like "o2321" where o represents the off hook event, 1756 and 2321 is the extension dialed. 1758 If you want to prevent the off hook event from being reported, then 1759 you can filter specific events from the event buffer using the ! 1760 command. To remove the off hook event, modify the script as follows: 1762 [ o , d 1763 [ 9 , !d [ (1XXXXXXXXXX) | (XXXXXXX) , ^!(o)^ ] ] 1764 | 1765 [ 0|1|2|3|4|5|6|7|8 , !d [XXX, ^!(o)^ ] ] 1766 ] 1768 Another way of expressing this pattern more compactly is to use the 1769 repetition operator as follows: 1771 [ o , d 1772 [ 9 , !d [ (1_10{X}) | (_7{X}) , ^!(o)^ ] ] 1773 | 1774 [0|1|2|3|4|5|6|7|8 , !d [_3{X}, ^!(o)^ ] ] 1775 ] 1777 Example 4: Call origination on a DTMF signaled digital trunk, where 1778 first circuit seizure is detected, then an 11-digit DTMF dialed 1779 number is collected with a * delimiter, then a 10 digit ANI. 1781 [ &s_11{X}* , ^^ [_10{X}, ^^] ] 1783 First, the circuit seizure pattern &s is shown, followed by the DTMF 1784 digit wildcard X, followed by the repetition operator _11{X}, 1785 followed by the DTMF *. This pattern collects the circuit seizure 1786 followed by 11 DTMF digits and a *. 1788 The action section reports the 11 digits to the media gateway 1789 controller using the ^^ operator, followed by a new pattern/action 1790 pair. The second pattern/action pair collects 10 DTMF digits using 1791 _10{X}, then reports the 10 digits. 1793 Example 5: A call has already been placed between two telephone users 1794 through an media gateway using SS7 signaling on the origination side 1795 of a carrier network, and using analog station signaling through a 1796 PBX gateway on the other side of the carrier network. Another call 1797 arrives at the carrier network bound for the analog station, and the 1798 subscriber using the analog station has subscribed to call waiting. 1799 The example below shows the pattern/action strings to first 1800 - play a call waiting tone, 1801 - detect of flash hook, and 1802 - report the action to the media gateway controller 1804 and next, the media gateway controller sends to the media gateway an 1805 IPCC request for connection (RCON) to connection the endpoint to 1806 another endpoint, with piggy-backed attribute-value pairs which 1807 request notification of another flash. 1809 [ , c [ f , ^^ ] ] 1811 [ f , ^^ ] 1813 Example 6: An entire analog station call model for the PBX-style 1814 media gateway is presented. 1816 { [ o , d 1817 [ 9 , !d 1818 [ (1_10{X} | (_7{X} , ^!(o)^ 1819 [ /ACR/ , $ ] | [ h , ^^ ] 1820 ] 1821 ] 1822 | 1823 [0|1|2|3|4|5|6|7|8 , !d 1824 [ _3{X}, ^!(o)^ [ /ACR/ , $ ] | [ 1825 h , ^^ ] 1826 ] 1827 ] 1828 | 1829 [ /T01?015000/ , !d e 1830 [ h , !e $ ] 1831 ] 1832 ] } 1834 This script is nearly identical to the one presented in Example 3, 1835 except that new event detection sections are added to detect hangup 1836 from the far end represented by /ACR/, or hangup by the analog 1837 station, represented by h. /ACR/ is the detection of the "release 1838 channel completed" message sent from the media gateway to the media 1839 gateway controller. This event need not be reported to the media 1840 gateway controller since the media gateway controller requested the 1841 channel release. The $ operator clears the event buffer so that the 1842 script can repeat with an empty event buffer. 1844 Also, a timer has been added to the example, so that if dialtone is 1845 played for more than 15 seconds without a digit being dialed, error 1846 tone will be played until hangup is detected, and the event buffer 1847 will be cleared. 1849 Example 7: Originating Signaling Sequence for a Feature Group D 1850 interface from an Access Tandem Switch to an Interexchange Carrier 1851 Media gateway emulating a switch, using MF signaling. 1853 [ &s, &w [ +K0 _12{+X} S0 +K0 +0 _10{+X}S0 , &w ^^] ] 1855 In this case, the media gateway detects seizure, and returns a wink 1856 to the access tandem. After that, the media gateway collects 1857 information digits and ANI (the 12 digits collected between K0 and 1858 S0), then collects the dialed number (a 0 then 10 digits, also 1859 delimited by K0 and S0). Last, the media gateway returns wink to the 1860 access tandem. If the digits sent over the trunk are 121234567890 1861 and 00987654321, then the event buffer will contain 1862 "&s+K0+1+2+1+2+3+4+5+6+7+8+9+0+K0+0+0+9+8+7+6+5+4+3+2+1+S0". 1864 Example 8: In this example, 7 DTMF digits are collected with an 1865 inter-digit timer of 10 seconds. If the inter-digit timer expires at 1866 any point the pattern is matched and any digits collected so far are 1867 reported. 1869 _7{ [X , ] | [/T01?10000/ ,^^ => ] } 1871 In this case, if the user enters "12345" then waits ten seconds, the 1872 event buffer will contain: "12345/T01?10000/". 1874 Example 9: In this example, the media gateway is requested to 1875 collect 10 MF digits and send them to the media gateway controller 1876 one at a time. 1878 _10{ [+X, ^^] } 1880 4 Security Considerations 1882 Security issues are not discussed in this memo. The security 1883 mechanisms recommended are those specified in [3]. 1885 5 Rights and Permissions 1887 The contributors to this document are listed in the author's address 1888 and acknowledgement sections of the document. All contributors to 1889 this document and the organizations we represent grant an unlimited 1890 perpetual, non-exclusive, royalty-free, world-wide right and license 1891 to any party under the copyrights in the contribution. This license 1892 includes the right to copy, publish and distribute the contribution 1893 in any way, and to prepare derivative works that are based on or 1894 incorporate all or part of the contribution, the license to such 1895 derivative works to be of the same scope as the license of the 1896 original contribution. The contributors grant permission to reference 1897 the names and addresses of the contributors and of the organizations 1898 we represent. We agree that no information in the contribution is 1899 confidential and that the any party may freely disclose any 1900 information in the contribution. 1902 The contributors to this document believe that the organizations we 1903 represent have the authority to grant the rights stated herein. The 1904 contributors to this document will grant any party a perpetual, non- 1905 exclusive, royalty-free, world-wide right to implement, use and 1906 distribute the technology or works when implementing, using or 1907 distributing technology based upon the specific specification. 1909 The contributors represent that we have disclosed the existence of 1910 any proprietary or intellectual property rights in the contribution 1911 that are reasonably and personally known to the contributors. The 1912 contributors do not represent that we personally know of all 1913 potentially pertinent proprietary and intellectual property rights 1914 owned or claimed by the organization he represents (if any) or third 1915 parties. 1917 The contributors represent that there are no limits to the 1918 contributors' ability to make the grants, acknowledgments and 1919 agreements above that are reasonably and personally known to the 1920 contributors. 1922 6 References 1924 [1] Calhoun, Rubens, "DIAMETER Base Protocol", Internet-Draft, 1925 draft-calhoun-diameter-04.txt, July 1998. 1927 [2] Calhoun, Zorn, Pan, "DIAMETER Framework", Internet-Draft, draft- 1928 calhoun-diameter-framework-00.txt, May 1998. 1930 [3] Taylor, "IP Device Control Base Protocol", Internet-Draft, 1931 draft-taylor-ipdc-00.txt, August 1998. 1933 [4] Dugan, "IP Connection Control Protocol", Internet-Draft, draft- 1934 dugan-ipdc-conn-00.txt, August 1998. 1936 [5] Skran, "IP Device Control Framework", Internet-Draft, draft- 1937 skran-ipdc-frame-00.txt, August 1998. 1939 [6] Pickett, "IP Device Management Protocol", Internet-Draft, draft- 1940 pickett-ipdc-mgmt-00.txt, August 1998. 1942 [7] Bell, "IP Signaling Protocol", Internet-Draft, draft-bell-ipdc- 1943 sig-00.txt, August 1998. 1945 7 Acknowledgments 1947 The author wishes to acknowledge the following individuals for their 1948 contribution to the IP Media Control protocol: 1950 Ilya Akramovich, Bob Bell, Dan Brendes, Russ Dehlinger, Andrew 1951 Dugan, Peter Chung, Cary FitzGerald, Jan Gronski, Tom Hess, Geoff 1952 Jordan, Tony Lam, Shawn Lewis, Dave Mazik, Alan Mikhak, Pete 1953 O'Connell, Scott Pickett, Shyamal Prasad, Paul Richards, Dale Skran, 1954 Louise Spergel, Raj Srinivasan, Tom Taylor, Michael Thomas. 1956 8 Author's Address 1958 Questions about this memo can be directed to: 1960 Isaac K. Elliott 1961 Level 3 Communications 1962 1450 Infinite Drive 1963 Louisville, CO 80027 1965 Phone: 1-303-926-3123 1966 Fax: 1-303-926-3406 1967 Email: ike.elliott@L3.com