ReneJF / jss7

Automatically exported from code.google.com/p/jss7
0 stars 0 forks source link

Negotiation of MAP protocol version #5

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
History : http://code.google.com/p/mobicents/issues/detail?id=2986

Original issue reported on code.google.com by amit.bha...@gmail.com on 15 Apr 2012 at 10:50

GoogleCodeExporter commented 9 years ago

Original comment by amit.bha...@gmail.com on 8 May 2012 at 12:19

GoogleCodeExporter commented 9 years ago

Original comment by amit.bha...@gmail.com on 9 May 2012 at 9:23

GoogleCodeExporter commented 9 years ago

Original comment by amit.bha...@gmail.com on 7 Aug 2012 at 12:40

GoogleCodeExporter commented 9 years ago
Could someone add a initial design for this?

Original comment by lasithwa...@gmail.com on 9 Sep 2012 at 5:45

GoogleCodeExporter commented 9 years ago
Least priority and pushed to 2.1.0.BETA3 

Original comment by amit.bha...@gmail.com on 9 Nov 2012 at 10:34

GoogleCodeExporter commented 9 years ago
Below is my idea how MAP negotiation can be implemented.
Some of data should be preconfigured, some will be updated when
application lifecycle.

import java.util.ArrayList;
import java.util.HashMap;

public class NegotiationDataProvider {
        public class ACNData {
                private int ACName;
                private int SupportedVersion;
        }

        public class ACNDestination {
                private int id;
                private String template;
                private HashMap<Integer, ACNData> data = new HashMap<Integer, ACNData>();

                public ACNData getSupportedACN(int acn) {
                        return null;
                        // .....................
                }

                public void updateSupportedACN(int acn, int version) {
                        // .....................
                }
        }

        private ArrayList<ACNDestination> destList = new ArrayList<ACNDestination>();

        // configuring:
        public void addDestination(int id, String template) {
                // .....................
        }

        public void removeDestination(int id) {
                // .....................
        }

        public ArrayList<ACNDestination> getDestinationList() {
                return null;
                // .....................
        }

        public ACNDestination findACNDestination(String address) {
                return null;
                // .....................
        }

        // How it can work:
        // Firstly a used should configure a list of ACNDestination
(generally they are templates).
        // "template" is a global title address or a part of this address
(for example "1234*" or "111??")
        // The list of ACNDestination (templeates) can be configured in by a
management interface (for example CLI)
        // (it is not implemented firstly)
        // When first configuring supported AC names and versions can be
configured also via a management interface
        //
        // Then a MAP user application searches a ACNDestination by invoking
findACNDestination()
        // with SCCP GT address as a parameter. If ACNDestination is found
and AC version is predefined
        // for needed AC name MAP user application just use it for Mobicents
originated messages.
        // If ACNDestination is found but AC version is not predefined, MAP
user application
        // tries to negotiate AC version (starting with max possible) and
determine in this way the max AC version
        // that a peer supports. Then the MAP user application update a
negotiation table by ACNDestination.updateSupportedACN()
        // If AC version is preconfigured but the MAP user application failed
to use this AC version it
        // makes a negotiation process and if success it will update a
negotiation table too.
        // A MAP user application can also not to update data in the
negotiation table but only use

        // Another algo can be implemented for such application like HLR/VLR.
HLR and VLR can keep AC version
        // for each subscriber according to data that has been obtained by
previous MAP dialogs.
}

Original comment by serg.vet...@gmail.com on 28 Nov 2012 at 4:16