Subject: "Local" part of SDP to the binary data

From: Satoshi SUNAGA <[email-masked]>
Date: Tue, 17 Oct 2000 19:43:28 +0900

Dear Sir,

We have a question about H.248(06/00) APPENDIX A
EXAMPLE CALL FLOWS(INFORMATIVE) Clause 3 of ITU-T
recommendation.
Please let me know how we convert the text sample data
of "Local" part of SDP(Session Description Protocol) to
the binary data.

Please advise;
(1)How do we convert the "(?)" part of sample data to
    binary data?
    For example,we have converted the "V=0" of sample data
    of SDP to "(2)" part as following.

////ITU-T H.248(06/00) APPENDIX A EXAMPLE CALL FLOWS
(INFORMATIVE)  Clause 3. sample data

3.      The MGC programs a Termination in the NULL context.
The terminationId is A4444, the streamId is 1,
the requestId in the Events descriptor is 2222.
The   mId is the identifier of the sender of this message,
  in this case,
it is the IP address and port [123.123.123.4]:55555.
Mode for this stream is set to SendReceive.
"al" is the analog line supervision package.
MGC to MG1:
MEGACO/1 [123.123.123.4]:55555
Transaction = 9999 {
     Context = - {
         Modify = A4444 {
             Media { Stream = 1 {
                      LocalControl {
                          Mode = SendReceive,
                          tdmc/gain=2,  ; in dB,
                          tdmc/ec=on
                      },
---------------------------------------------
                      Local {

(?)v=0
(?)c=IN IP4 $
(?)m=audio $ RTP/AVP 0
(?)a=fmtp:PCMU VAD=X-NNVAD ; special voice activity
                           ; detection algorithm
                      }
---------------------------------------------
(1)How do we convert the "(?)" part of sample data to
    binary data?

        }
             },
             Events = 2222 {al/of}
         }
     }
}
/////////////////////

/////////// This is the result that we have edited of
                      the sample data to the binary data.
H248_APPENDIX_A.1.1_3.vmd

ASN.1(BER):
<DETAIL>
  + ASN.1(BER): 250 Bytes :
    + MegacoMessage
      + mess ::= Message
        + version : 1
        + mId ::= MId : ip4Address
        | + ip4Address ::= IP4Address
        |   + address : 123.123.123.4
        |   + portNumber : 55555
        + messageBody : transactions : 1 components
          + [0] Transaction : transactionRequest
            + transactionRequest ::= TransactionRequest
              + transactionId ::= TransactionId : 9999
              + actions : 1 components
                + [0] ActionRequest
                  + contextId ::= ContextID : 0
                  + commandRequests : 1 components
                    + [0] CommandRequest
                      + command ::= Command : modReq
                        + modReq ::= AmmRequest
                          + terminationID ::= TerminationIDList : 1 components
                          | + [0] TerminationID
                          |   + wildcard : 0 components
                          |   + id : 3 Bytes
                          |     + 0A4444
                          + descriptors : 2 components
                            + [0] AmmDescriptor : mediaDescriptor
                            | + mediaDescriptor ::= MediaDescriptor
                            |   + streams : multiStream : 1 components
                            |     + [0] StreamDescriptor
                            |       + streamID ::= StreamID : 1
                            |       + streamParms ::= StreamParms
                            |         + localControlDescriptor ::= LocalControlDescriptor
                            |         | + streamMode ::= StreamMode : sendRecv (2)
                            |         | + reserveValue : FALSE
                            |         | + reserveGroup : FALSE
                            |         | + propertyParms : 2 components
                            |         |   + [0] PropertyParm
                            |         |   | + name ::= PkgdName : 4 Bytes
                            |         |   | | + 000D000A
                            |         |   | + value : 1 components
                            |         |   |   + [0] OCTET STRING : 2 Bytes
                            |         |   |     + 0002
                            |         |   + [1] PropertyParm
                            |         |     + name ::= PkgdName : 4 Bytes
                            |         |     | + 000D0008
                            |         |     + value : 1 components
                            |         |       + [0] OCTET STRING : 1 Bytes
                            |         |         + 01
                            |         + localDescriptor ::= LocalRemoteDescriptor
                            |           + propGrps : 1 components
                            |             + [0] PropertyGroup : 5 components
                            |               + [0] PropertyParm
                            |               | + name ::= PkgdName : 4 Bytes
                            |               | | + 0000B001
                            |               | + value : 1 components
                            |               |   + [0] OCTET STRING : 3 Bytes
                            |               |     + 763D30
                                                      (?)We have converted the
                                                     "V=0" to "763D30",ASCII code.
                                           Please advise what we input in this part.
                            |               + [1] PropertyParm
                            |               | + name ::= PkgdName : 4 Bytes
                            |               | | + 0000B008
                            |               | + value : 1 components
                            |               |   + [0] OCTET STRING : 10 Bytes
                            |               |     + 633D494E 20495034 2024
                            |               + [2] PropertyParm
                            |               | + name ::= PkgdName : 4 Bytes
                            |               | | + 00001001
                            |               | + value : 1 components
                            |               |   + [0] OCTET STRING : 1 Bytes
                            |               |     + 00
                            |               + [3] PropertyParm
                            |               | + name ::= PkgdName : 4 Bytes
                            |               | | + 0000100F
                            |               | + value : 1 components
                            |               |   + [0] OCTET STRING : 1 Bytes
                            |               |     + 00
                            |               + [4] PropertyParm
                            |                 + name ::= PkgdName : 4 Bytes
                            |                 | + 0000B00C
                            |                 + value : 1 components
                            |                   + [0] OCTET STRING : 21 Bytes
                            |                     + 666D7470 3A50434D 55205641 443D582D 4E4E5641 44
                            + [1] AmmDescriptor : eventsDescriptor
                              + eventsDescriptor ::= EventsDescriptor
                                  + requestID ::= RequestID : 2222
                                 + eventList : 1 components
                                  + [0] RequestedEvent
                                    + pkgdName ::= PkgdName : 4 Bytes
                                    | + 00090005
                                    + evParList : 0 components

Any help you can provide would be appreciated.
Thank you.

Best regards,
Satoshi SUNAGA

---

From: Christian Groves <[email-masked]>
Date: Thu, 19 Oct 2000 13:29:54 +1100

Hello Satoshi,

There's a couple of ways to have a binary encoded version of the
example.

One is to find the equivalent Native Tag to the SDP information in the
example flows.
ie. > (?)c=IN IP4 $ could be represented by doing a choose on property
Tag 6001. How to do a choose in the binary version is described in Annex
A.

The other is to use the tags in Annex C.11 to represent the appropriate
SDP lines. Whilst not explicitely stated, nor prohibited I guess you
could use the same (?) construct for choose.

I think the first option is the favoured one.

Cheers, Christian