Showing posts with label relatable experience. Show all posts
Showing posts with label relatable experience. Show all posts

Tuesday, 14 October 2014

Diameter - just when you thought you were working with a standard

Just when you thought you were working with a standard
When I was working with a large swap out charging system recently, we have to integrate to an existing 3rd party vendor's (Nokia Siemens Network) product. The protocol used by the 3rd party is diameter (RFC 6733). "That would be easy peasy piece of job" as some would think that since we were swapping out the existing 3rd party product, all that is required is to change existing clients to point to the replaced Ericsson charging nodes since both products (the Ericsson's product and 3PP product) publish to the same protocol standard. The myth is crashed because although like all standards, there are also slight variations to the standard as each vendor designed their interface differently to take advantage of their system features. 
Recognizing the differences between the two standards is one of my key task as I have to educate our partner vendor to perform the necessary mapping transformation from NSN's protocol to Ericsson's protocol (SCAPv2). NSN uses Service-Information (AVP code 873) to package her user-defined charging information while Ericsson achieves the same through the Service-Parameter-Info (AVP code 607). Internet provides my initial source of information but I have to resort on cramming on the two products documentation to come out with the right mapping. 
Seagull - an essential SI tool
The other challenge that the team faced is how to perform functional tests on the NSN diameter protocol. Although there is an Ericsson simulation tool, I was getting no joy from internal Ericsson's experts who have advised me that the effort required to get the tool up and running may be significant. The initial path adopted by the team is to capture the protocol on several use cases and played back the captured protocol to simulate the use cases.I soon realized the short falls of this technique as it was a slow discovery process to uncover new bugs. The game is on to look for a new functional testing tool. After the evaluations of several candidates, I settled on using an open source multi-protocol traffic generator, Seagull. 



There are no internal experts to consult and the brief Seagull documentation details is of not much help neither. I have to resort to reverse engineer the protocol from other sources. I used another open-source tool; this time wireshark (formerly known as ethereal). Creating the NSN diameter dictionary file was the first step. 


The next stage would be to design the scenario files. A scenario file describes the messages that were exchanged during traffic. In Seagull, you create one scenario file per use case. The scenario file contains two key sections; the <init> section and the <traffic> section. In the <init> section, you specify the CER command sent and the expected command received (normally CEA) during the initialization stage. In the <traffic> section, you specify your CCR command that you would be sending and the expected CCA command to receive. The actual CCR and CCA differs in each use case and the protocol is specific to how the backend charging system supports the charging function.
Creating a generic tool makes the learning more effective. The tool that I have developed is a testing suite to test the functions of the business requirements of the actual project. To make the tool flexible to test all possible test factors (e.g. the user phone number, the product id, the plan code, the amount to be charged, the session id), I extended Seagull by creating parameterized variables to replace the parameters during run time.
ECUR and IEC
The testing suite supports both types of charging :-
  • ECUR  (Session based charging)
  • IEC (Event based charging)
It allows testing engineers to perform the following functional tests

ECUR Functional Tests
  • Reserve payment
  • Commit (after a reserved is made)
  • Cancel of a reservation
  • Get transaction status
IEC Functional Tests
  • Direct debit
  • Get subscriber’s wallet details
  • Activate a subscriber via MMS

Questions for assessment purpose


Building this testing suite allowed me to gain in-depth knowledge of Seagull to create an effective training session to Ericsson's testing team. Designing the materials there after becomes an easy task. The final stage of designing the training session is to create questions for assessment purpose. To make the learning more valuable to the engineers, I have further customized some of the questions specifically for the client environment. Relating the questions to the client environment thus become a "relatable experience" to the students and make the learning more effective. Here is a sample of the questions that I have designed for this training:-
  1. Which protocol does SEAGULL use to test the IL charging gateway?
  2. Which one of the following is not a valid DIAMETER message?
  3. Which tool do you use to perform your snoop?
  4. What does CCN use to decide on a unique peer?
  5. Which DIAMETER message is missing in your snoop if you do not see any deduction?
  6. What is a session based charging?
  7. What is a default timeout for a session based charging?
  8. In which state of the subscriber can you perform a deduction?
  9. If the subscriber is in a PRE-ACTIVE state, which type of DIAMETER operation will be successful?
  10. What is EPOCH?
  11. Which field associates a “Reserved Payment” operation and a “Get Transaction status” operation?
  12. What is the easiest way to verify if a payment has been reserved?
  13. Which of the following is a ECUR operation?
  14. If you perform a deduction using plan code BD5, how much will be deducted from the AIR TIME balance?
  15. What is the Result-Code when you try to perform a “Direct Debit” on a PRE-ACTIVE subscriber?
  16. What is the Result-Code when you try to perform a “Direct Debit” on subscriber who has insufficient balance?
  17. What is the Result-Code when you try to perform a “Commit Payment” if you have not performed a reserved payment?
  18. What is the Result-Code when you perform a “Get Balance” query on a subscriber with insufficient balance?
  19. Which of the following is an IEC operation?

Saturday, 11 October 2014

The Art of Training

The Art of Training
Some of the tools I often used to communicate my lessons are
  • PowerPoint slides - lecturing
  • Whiteboard - reinforcing the ideas / concepts
  • Group Exercises - social learning
  • Demonstrations - visual learning
  • Summary - recap on the topics
  • Pre and Post Tests - feedback to the students
  • Reverse shadow - enforce the student's understanding of its topic
Why would I need to use more than one tool to delivery my training? The short answer is that together the tools will help to build up the knowledge of the students on the selected topic(s) more effectively. For the long answer, please continue on (reading) ... 
Since my University days, I learned that attending a lecture is often not sufficient to fully learn a subject. Attending lectures is a rather passive form of learning. A lecture is good only as a factual type of learning a topic.   
To supplement the learning process, I often employed other techniques such as performing a demonstration to the students. Through the demonstration, the students may be able to relate the information personally. It also helps to raise the student interest and reinforce his memory retention. Learning through demonstration thus become a form of "connected learning". 
Other techniques that I have adopted to train students more effectively is through group exercises. Group exercises help some learners (e.g. social learners) to grasp a topic more easily. As students are actively engaged in pursuing the exercise, learning becomes more fun and effective. It also eliminates the "personal failure" fear factor as the participating student is no longer an individual under the lime light. In addition, it encourages the students to think less bias on the topic. 
To make learning a more "relatable experience", I often designed my materials based on a common theme. I chose the theme that most of my students can relate to personally. It could be a theme that everyone has a common interest in (e.g. Soccer or problems that they faced each day). By having a common interest, learning becomes more relatable.  
Finally, no training will go well without having an assessment test to the students. Doing an assessment gives to the students (the necessary feedback of how well the students have understood the subject and to myself, how effective I have designed and communicated my training materials. I used a very simple approach: a pretest before the training to gauge the students' pre-knowledge on the topic and a post-test to measure the students' gained in knowledge. 
A side note: have you ever wondered among yourselves about two trainers presenting the same factual content and you noted that one trainer was more effective in his training than the other? There could be many factors that lead to the different outcome, but some of the reasons could be due to
  • the trainer's soft-skills
  • the delivery of the trainer's content
  • the way the trainer engages the audience.
  • the trainer's subject matter expertise on the topic.
No textbook can teach you all of these and I am in the same boat. However, I believe that through practice, experience and dedication, I am getting there (at least from the favorable feedback from my students).  
Be prepared
I often write on the whiteboard (using "whiteboard markers") to emphasize important concepts and ideas. The last point of using whiteboard markers is a pun because I have seen so many presenters defaced the whiteboard by using permanent ink markers. That really gets my goolies as I expect that testing the marker would be the first step of any presenter before he writes on the whiteboard. The other goolies that gets me is that the previous presenter often left behind empty or near empty whiteboard markers that are unusable. Having been caught by these scenarios numerous of times, I now bring along my own whiteboard markers to any training session. 
The rest of my checklists before a training session are 
  • Loan a working projector for your PowerPoint presentation from the administrator / facility
  • Connectivity to internet or intranet 
  • The required software or web application link for your students
  • The names of your students
  • The local contact person who organizes your room and lunch/drinks/tea breaks for your students
  • Possible questions and problem scenarios that your students may ask
  • Your technical SME