Get a large soup pot and put the tbsp of olive oil in. Heat it on medium and sautee the onions, garlic, ginger and ALL the spices, excepting the cardamom pods, together.
Once everything is tender from being sauteed, mix the 3 tbsp vegetable stock into 4 cups of hot water.
Pour the stock into the pot, deglazing the pan with it.
Then add in the rest of the ingredients, the beans and lentils, after rinsing and draining the canned goods. I did not soak the lentils; with all the spices this soup needs to simmer a couple of hours minimum which cooks the lentils perfectly.
You can also add the cardamom pods now. Mix them all together and bring to a low boil, then turn your heat down on the burner and let it simmer for at least 2 hours. Stir it occasionally as with anything you cook on the stove. Check your lentils for texture, and when you are happy with how they are, remove the cardamom pods, then remove 1/3 of the soup to puree. Return puree to the pot and serve.
Notes
You can reduce the spicy factor by adjusting as needed.