Hi Willian,

sorry for the late reply, please find comments/answers inlined.

William Carl schrieb:
Thank you , Stipe tolj. I would like to ask few questions coz i wanted get clear some points as well . I am not a developer but i wanted to know exactly what is the perfect design based on kannel architecture.If every one says Kannel supports for WAP 2.0, how it is done with kannel , i do not meant about coding .

1. Can we directly forward ACC packet which passes form GGSN to the kannel box ? Don't we have a separate radius client or such a program to handle PDU's ?

Kannel will be either

a) a RADIUS proxy, which means it will receive the UDP packets from the GGSN, record the data for the MSISDN<->IP mapping and forward the UDP datagram again to a final RADIUS server.

 b) act as the "endpoint" RADIUS server, by not forwarding any packets.

Usually network carriers have a RADIUS server that they want to keep the RADIUS acct PDUs flow to, so normally a) applies.

2. Then all http and UDP requests goes via the wapbox ?

Yes. The normal Kannel will receive the UDP datagrams in the bearerbox, and forward to any of the connected wapbox instances. Keep in mind that we have a "native" load-balancing mechanism, due to the fact that N wapboxes can be connected to one bearerbox. Unfortunately by using more then 1 wapbox, you get into trouble for the RADIUS acct proxy PDU handling, since a finished request may have the MSISDN<->IP mapping in a different instance then the following request goes to. This architecture drawback was also re-designed in the Kannel-CG version.

3.while request goes through the wapbox adding MSISDN will be happening for all udp/wap 1.2.1 requests. like that how can we add MSISDN for each HTTP requests ?

yes, any passed WTP/WSP session -> HTTP request will resolve the client IP to a matching MSISDN from the mapping storage, which is a memory based dictionary hash in the normal Kannel.

The Kannel-CG can use a DB for this, i.e. sqlite3 to share the information across the instances.

4.If we gonna be used SQUID as our proxy server , what are configurations has to be done for capture MSISDN?

There is no native config you can use on the normal squid. Kannel-CG includes a custom squid module that "glues" the Kannel logic to the squid runtime binary to perform the inter-dependency logic tasks to archive this.

5.Then what would be the relationship between squid and the wapbox ?

squid acts as the HTTP proxy, and in case of Kannel-CG as the RADIUS acct resolver, as any request, WAP 1.x and 2.0 goes via squid as it's primary cache. bearerbox+wapbox are the WAP 1.x pre-logic daemons. So you have the following flow chains:

Case WAP 1.x requests:

  phone <-> GGSN <-UDP-> bearerbox <-TCP-> wapbox <-HTTP-> squid <-HTTP-> target

Case WAP 2.0 requests:

  phone <-> GGSN <-HTTP-> squid <-HTTP-> target

the squid daemon is essential here, since the incorporated RADIUS accounting proxy resolving is embedded via the custom module to it.

6.Without having a out of the box solution for WAP 2.0, can't we have WAP 1.2.1 and WAP 2.0 in a single kannel ??

Kannel does the WAP 1.2.1 stuff, but does not include a HTTP proxy for the WAP 2.0 request handling.

I have been thinking of doing this in Kannel internally when I was re-writing the whole WAP stack to allow 2.0 requests. But the issue here was: why inventing something totally new, when there is a standard solution that has been proven to be highly reliable and performative in the real-world, the squid cache. So the consequence was to glue them together, which Kannel-CG does.

Stipe

-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------

Reply via email to