DeliverRsp Problem header soap-env

DeliverRsp Problem header soap-env SearchSearch
Author Message
Dejan Petkovic
New member
Username: Pdeki

Post Number: 1
Registered: 03-2006
Posted on Saturday, March 18, 2006 - 03:07 pm:   

Hi,
I've connected NowMMS with the MMSC via MM7. I received MMS and forwarder in MMS-IN folder. When I send a MMS message and NowSMS received it after some period of time I've received MMS that my message couldn't be delivered. My MMS provider told me that my response () isn't appropriate. The response is:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><mm7:Transacti onID xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-M M7-1-0" env:mustUnderstand="1">MMS_72_20060318143320630 </mm7:TransactionID></env:Header><env:Body><DeliverRsp xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1 -0"><MM7Version>5.3.0</MM7Version><Status><StatusCode>1000</StatusCode><StatusTe xt>Success</StatusText></Status></DeliverRsp></env:Body></env:Envelope>

and should be something like:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header>
<TransactionID soap-env:mustUnderstand="1">MMS_48_20030325114307997</TransactionID>
</soap-env:Header>
<soap-env:Body>
<DeliverRsp xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1 -0">
<MM7Version>5.3.0</MM7Version>
<Status>
<StatusCode>1000</StatusCode>
<StatusText>Success</StatusText>
</Status>
<ServiceCode>test</ServiceCode>
</DeliverRsp>
</soap-env:Body>
</soap-env:Envelope>

The difference is soap-env Envelope and mm7 qualifier in TransactionID . How to change it ?
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 5677
Registered: 10-2002
Posted on Tuesday, March 21, 2006 - 03:58 pm:   

Hi Dejan,

Both responses are perfectly legal.

It sounds like there might be a bug in the service provider's MMSC.

In the NowSMS MM7 response, we are indicating that the "mm7:" namespace prefix is associated with the MM7 XML schema, and the "TransactionID" is defined in that schema.

In their example, they are doing the same thing, but indicating it without a namespace prefix.

And whether it is "soap-env" or "env" as the other prefix should not matter, as long as it is defined properly.

But that said, we'd like to come up with a solution to work around whatever bugs might be present in your service provider's MMSC.

Before we try making any changes/adjustments, I'd like to see the submit message that is being received by NowSMS. That might provide us some clues as to what we are dealing with (and we might see something that we have already seen elsewhere). Could you please enable the MMSCDEBUG.LOG (the easiest way to do this is on the "Serial #" page of the configuration dialog) ... and receive another message. Then post the MMSCDEBUG.LOG so that we can see the data that is being received.

-bn
Dejan Petkovic
New member
Username: Pdeki

Post Number: 2
Registered: 03-2006
Posted on Wednesday, March 22, 2006 - 09:15 am:   

Hi,
Thank you for the reply. In att. I'm sending part of the Debug.
application/octet-streamMMSCDebug.log
Copy of MMSCDEBUG.LOG (155.0 k)
.
I'm using NowSMS v5.51k (b20051013).

Regards
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 5692
Registered: 10-2002
Posted on Wednesday, March 22, 2006 - 06:57 pm:   

Dejan,

Download http://www.nowsms.com/download/dejan.zip. This file contains an updated MMSC.EXE which does not use the "mm7" namespace prefix for the TransactionID element.

Let's give that a try, and see if it makes a difference.

Do you know what type of MMSC the operator is using? I'm guessing that it's Comverse (based upon the "User-Agent:" field and the fact that it is using the 1.0 schema). Just what like to know to help keep track of oddities of different MMSC vendors.

-bn
Dejan Petkovic
New member
Username: Pdeki

Post Number: 3
Registered: 03-2006
Posted on Thursday, March 23, 2006 - 09:50 am:   

Hi,
Right now the response is"
<?xml version="1.0" ?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0" env:mustUnderstand="1">MMS_71_20060323094510181</TransactionID></env:Header><env :Body><DeliverRsp xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0"><MM7Version>5.3.0</MM7Version><Status><StatusCode>1000</StatusCode><StatusText >Success</StatusText></Status></DeliverRsp></env:Body></env:Envelope>"
MMSC told me that on their side is an error:"ERROR mm7.mm7client - The response message is invalid (Soap body doesn't contain all needed elements)". I looked and saw that it seems that response should contain also ServiceCode element (in the schema is written <xs:element name="ServiceCode" type="tns:serviceCodeType" minOccurs="0"/>, but is seems that for them is needed). How to add it ?
Yes, the MMSC is Comverse (!#!#$^#@$!@$##@@!).

Regards
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 5726
Registered: 10-2002
Posted on Monday, March 27, 2006 - 10:37 pm:   

Hi Dejan,

ServiceCode wouldn't be valid in a DeliverRsp, at least not in the schema that Comverse says that they are using (REL-5-MM7-1-0).

It is an optional parameter for DeliverRsp in later versions of the schema.

So I'd be surprised if they were requiring this element when it is not defined in the schema that they are using ... and is an optional parameter in later versions of the schema.

But I think it's worth giving it a try.

I've updated the http://www.nowsms.com/download/dejan.zip link from before.

To add a ServiceCode to the Deliver response, edit VASP\name\VASP.INI, and under the [VASP] header, add ServiceCode=xxxxxxxxx to specify whatever value you want to have included.

If that doesn't do the trick, then I'm leaning toward changing the "env" prefixes to "soap-env", although I can't imagine this being the problem either.

-bn
Dejan Petkovic
New member
Username: Pdeki

Post Number: 4
Registered: 03-2006
Posted on Tuesday, March 28, 2006 - 11:33 am:   

Hi,
Right now the anser is:
"<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0" env:mustUnderstand="1">MMS_71_20060328100219765</TransactionID></env:Header><env :Body><DeliverRsp xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0"><MM7Version>5.3.0</MM7Version><ServiceCode>000000000</ServiceCode><Status><Sta tusCode>1000</StatusCode><StatusText>Success</StatusText></Status></DeliverRsp>< /env:Body></env:Envelope>"
It seems that ServiceCode is the first element and not after Status element:
In the schema is:
<xs:complexType name="deliverRspType">
<xs:complexContent>
<xs:extension base="tns:genericResponseType">
<xs:sequence>
<xs:element name="ServiceCode" type="tns:serviceCodeType" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

<xs:complexType name="genericResponseType">
<xs:annotation>
<xs:documentation>Any simple response sent </xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="MM7Version" type="tns:versionType"/>
<xs:element name="Status" type="tns:responseStatusType"/>
</xs:sequence>
</xs:complexType>

Is it possible to put ServiceCode after ?

Regards
Dejan
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 5733
Registered: 10-2002
Posted on Tuesday, March 28, 2006 - 06:02 pm:   

Dejan,

I agree that is the way it is in the 1-1 (and later) schema.

The reason that we put it before was because the 5.3.0 spec has an example of this response with "ServiceCode" appearing before the "Status" element. This example also references the 1-0 schema that does not even have this element defined. So we just thought we'd try acting like the example in the spec.

But if that doesn't work, we can try using the proper order from the later schemas.

I've updated the http://www.nowsms.com/download/dejan.zip link from before.

-bn

Dejan Petkovic
New member
Username: Pdeki

Post Number: 5
Registered: 03-2006
Posted on Friday, March 31, 2006 - 01:16 pm:   

Hi,
Now is OK. Now I'll try to send some MMS to see is some problem over there also.

Regards
Dejan Petkovic
New member
Username: Pdeki

Post Number: 6
Registered: 03-2006
Posted on Friday, March 31, 2006 - 01:53 pm:   

Again me.
I tryed to send MMS. And you can guess. Problem. I send:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0" env:mustUnderstand="1">20060331153112-4DABBBB0::40::192.168.2.3</TransactionID>< /env:Header><env:Body><SubmitReq xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0"><MM7Version>5.3.0</MM7Version><SenderIdentification><VASID>cepou4441311</VASID ></SenderIdentification><Recipients><To><Number>381646131040</Number></To></Reci pients><Priority>Normal</Priority><Subject>asd</Subject><Content href="cid:mms_cid"/><ServiceCode>0001</ServiceCode></SubmitReq></env:Body></env: Envelope>

Response is:
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Header><TransactionID xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0" soap-env:mustUnderstand="1">20060331153112-4DABBBB0::40::192.168.2.3</Transactio nID></soap-env:Header><soap-env:Body><soap-env:Fault><soap-env:faultcode>Server. Service</soap-env:faultcode><soap-env:faultstring>Server Error</soap-env:faultstring><soap-env:Detail><Status xmlns="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0"><StatusCode>4004</StatusCode><StatusText>Validation Error</StatusText><Details>Validation violation: element "ServiceCode" was found where no element may occur</Details></Status></soap-env:Detail></soap-env:Fault></soap-env:Body></soa p-env:Envelope>

Shema is:
<xs:complexType name="submitReqType">
<xs:complexContent>
<xs:extension base="tns:genericVASPRequestType">
<xs:sequence>
<xs:element name="Recipients" type="tns:recipientsType"/>
<xs:element name="ServiceCode" type="tns:serviceCodeType" minOccurs="0"/>
<xs:element name="LinkedID" type="tns:messageIDType" minOccurs="0"/>
<xs:element name="MessageClass" type="tns:messageClassType" default="Informational" minOccurs="0"/>
<xs:element name="TimeStamp" type="xs:dateTime" minOccurs="0"/>
<xs:element name="ReplyCharging" minOccurs="0">
<xs:complexType>
<xs:attribute name="replyChargingSize" type="xs:positiveInteger" use="optional"/>
<xs:attribute name="replyDeadline" type="tns:relativeOrAbsoluteDateType" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="EarliestDeliveryTime" type="tns:relativeOrAbsoluteDateType" minOccurs="0"/>
<xs:element name="ExpiryDate" type="tns:relativeOrAbsoluteDateType" minOccurs="0"/>
<xs:element name="DeliveryReport" type="xs:boolean" minOccurs="0"/>
<xs:element name="ReadReply" type="xs:boolean" minOccurs="0"/>
<xs:element name="Priority" type="tns:priorityType" minOccurs="0"/>
<xs:element name="Subject" type="xs:string" minOccurs="0"/>
<xs:element name="ChargedParty" type="tns:chargedPartyType" minOccurs="0"/>
<xs:element name="DistributionIndicator" type="xs:boolean" minOccurs="0"/>
<xs:element name="Content" type="tns:contentReferenceType" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>

It seems that ServiceCode couldn't be placed after Content element. It should be right after Recipients.

Regards
Dejan
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 5755
Registered: 10-2002
Posted on Friday, March 31, 2006 - 04:51 pm:   

Hi Dejan,

I'm a bit confused because in a SubmitReq we do put the ServiceCode right after the recipients. (Maybe we didn't always, but certainly in that most recent version that you have, it would be there.)

Unless ... you're not using the "AdditionalSettings" VASP.INI file setting, are you? It would put this there. But if you actually used the "Service Code" field in the MMSC Routing configuration, then it would appear where you expect it to appear.

If you have an older configuration front-end that doesn't have a "Service Code" setting beneath "VASP ID" and "VAS ID", then you can manually edit VASP.INI, and add ServiceCode=0001 under the [VASP] header.

-bn
Dejan Petkovic
New member
Username: Pdeki

Post Number: 7
Registered: 03-2006
Posted on Monday, April 03, 2006 - 09:11 am:   

Hi,
Yes I've changed VASP.INI because I need to do. I've changed schema and ServiceCode because of previous problems. My VASP.INI is:
[VASP]
MMSRouting=~MMSIN
MM7Schema=http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-5-MM7-1-0
ServiceCode=000000000

What should I change ?

Regards
Bryce Norwood - NowSMS Support
Board Administrator
Username: Bryce

Post Number: 5764
Registered: 10-2002
Posted on Monday, April 03, 2006 - 02:41 pm:   

Hi Dejan,

I'm referring to the VASP.INI for the outbound connection. (VASPOUT\xxxx\VASP.INI)

It looks like you have used a setting in that file "AdditionalSettings" to add the ServiceCode for the outbound message routing. If you use that setting, it always adds these settings after the "Content" element.

The proper way to add a Service Code is via the user interface, where there is a "Service Code" option ... under "VASP ID" and "VAS ID".

If for some reason, the service code option is not present in the user interface, it can be added to VASPOUT\xxxxx\VASP.INI with a "ServiceCode=00000000" setting.

Just make sure to remove the "AdditionalSettings=" option from that file.

-bn
Dejan Petkovic
New member
Username: Pdeki

Post Number: 8
Registered: 03-2006
Posted on Monday, April 03, 2006 - 04:43 pm:   

Hi,
Yeah. That was the problem.
Thank you.
Regards