Interface Specification document for USSD Application Developer communicate with Mobicents USSD Gateway

210 views
Skip to first unread message

sokha

unread,
Oct 25, 2011, 10:40:00 AM10/25/11
to mobicents-public
Hello everyone,

Is there any interface protocol document (SIP/HTTP) for USSD
Application Developer?
I have been testing and playing around with Mobicents USSD Gateway
however i still does not understand on meaning of field used in xml
exchange between ussd application and ussd gateway.

ex:
// USSD gateway --> Application
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request xmlns="http://mobicents.org/ussd">
<invokeId>1</invokeId>
<dialogId>2</dialogId>
<msisdn>31628838002</msisdn>
<ussdString>*123#</ussdString>
<ussdCoding>15</ussdCoding>
<result>false</result>
<lastResult>false</lastResult>
</request>
// USSD gateway <-- Application
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request xmlns="http://mobicents.org/ussd">
<invokeId>2</invokeId>
<dialogId>2</dialogId>
<ussdString>Welcome to train station scheduler service. Press
following digits for 1) Train schedule. 2) Station location. 3)
Discount rates. 4) Promo</ussdString>
<ussdCoding>15</ussdCoding>
<result>false</result>
<lastResult>false</lastResult>
</request>
//USSD gateway -->Application
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<request xmlns="http://mobicents.org/ussd">
<invokeId>1</invokeId>
<dialogId>0</dialogId>
<ussdString>4</ussdString>
<ussdCoding>15</ussdCoding>
<result>false</result>
<lastResult>false</lastResult>
</request>
//USSD gateway <-- Application
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response xmlns="http://mobicents.org/ussd">
<invokeId>1</invokeId>
<dialogId>0</dialogId>
<ussdString>There are no DISCOUNT! Pay the price!</ussdString>
<ussdCoding>15</ussdCoding>
</response>

// from this log, we can assume that there are two primary xml
structure , request and response and here is my questions:

1- InvokeId: what is the purpose of this field? how it is generated?
2-dialogId: what is the purpose of this field? how it is generated?
3-ussdstring : how many characters does the gateway support?
4-ussdCoding: 15 for 7bit coding scheme? how about 8bit? 16bit
5-result: what is the purpose of this field?
6-lastResult:what is the purpose of this field?


Regards,
sokha

Bartosz Baranowski

unread,
Oct 25, 2011, 11:00:23 AM10/25/11
to mobicent...@googlegroups.com

Bartosz Baranowski
JBoss R & D
==================================
Word of criticism meant to improve is always step forward.


Its a bit tricky.

GW                                                    APP
           ------ USSD REQ( InvokeId1)  ------>
           <------ USSD REQ( InvokeId2)  ------
           ------ USSD REQ( InvokeId3)  ------>
           <------ USSD ANS( InvokeId1)  ------

 Yes - its confusing, had hard time to grasp this myself. Now wrt to questions:

1- InvokeId: what is the purpose of this field? how it is generated?
This comes from TCAP, its  counter field which is kind of round robin byte for TCAP/MAP Dialog
2-dialogId: what is the purpose of this field? how it is generated?
This comes from MAPDialog. Its ID of .... :) 
3-ussdstring : how many characters does the gateway support?
ATM - depends on transport, if its M3UA, there is only limitation there.
We did not implement fragmentation and reasemble at SCCP iirc. 
4-ussdCoding: 15 for 7bit coding scheme? how about 8bit? 16bit
protected int ussdCoding; ?? This field is simple copy of one carried by MAP USSD Service messages. 
5-result: what is the purpose of this field?
6-lastResult:what is the purpose of this field?

Used to indicate if USSD Req carries result/lastResult for particular invoke ID - ie. If user Sends USSD Req with InvokeID =2, and response is for instance 500 bytes, application can fragment answer. This is exists to allow data fragmentation without support for it at SCCP. 

Regards,
sokha


Reply all
Reply to author
Forward
0 new messages